我是所有多处理东西的新手,我当前的程序不起作用。我在最后几个小时阅读了有关该问题的内容,并且尝试了很多方法,无论是在课堂内外还是在不同的课堂上,都没有奏效。
import multiprocessing as mp
class A:
@staticmethod
def multi():
a = [1,2,3]
b = 4
prepared = list()
for x in a:
prepared.append((x, b))
pool = mp.Pool(mp.cpu_count()-1)
result = pool.starmap(method, prepared)
pool.close()
pool.join()
print(result)
def method(a, x):
return (a-x, a+x)
if __name__ == "__main__":
a = A()
a.multi()
这只是我的类/方法结构的一个示例(尽管我在多处理部分没有更改任何内容,但这个确实有效)。
这是我得到的例外:
AttributeError: Can't pickle local object 'FeatureExtracter.<locals>.feature_extracter_fwd'
如果有人知道解决方案或者至少知道为什么不能腌制该方法,那就太好了。