鉴于这里的代码,我尝试调用:
p = ProgressBar(maxval=len(img_paths))
sm = SaliencyMaskSlic()
operations = [('img_resize', img_resize), ('sal_mask', sm.transform)]
args_list = [{'h_size':258}, {'cropped':True}]
pre_pipeline = Pipeline(ops=operations, arg_list=args_list)
ch = ColorHist('RGB', [6,6,6], [2,2], center=True, pre_pipeline = pre_pipeline)
for count,img_path in enumerate(img_paths):
s.submit(ch.transform, (img_path,))
p.update(count)
p.finish()
它提出了:
---------------------------------------------------------------------------
PicklingError Traceback (most recent call last)
<ipython-input-44-b62cf2241437> in <module>()
9
10 for count,img_path in enumerate(img_paths):
---> 11 s.submit(ch.transform, (img_path,))
12 p.update(count)
13 p.finish()
/usr/local/lib/python2.7/dist-packages/pp-1.6.4-py2.7.egg/pp.pyc in submit(self, func, args, depfuncs, modules, callback, callbackargs, group, globals)
458
459 sfunc = self.__dumpsfunc((func, ) + depfuncs, modules)
--> 460 sargs = pickle.dumps(args, self.__pickle_proto)
461
462 self.__queue_lock.acquire()
PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup __builtin__.instancemethod failed
为了使用 pp 库,我应该如何在 Python 中处理这种情况。或者还有哪些其他可用的解决方案?