我是所有多处理设备的新手,我当前的程序无法正常工作。我阅读了有关问题的最后几个小时,并且尝试了很多,该方法在班级内或班级外以及在另一个班级内都没有用。
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'
如果有人知道解决方案,或者至少为什么不能腌制该方法,那就太好了。
答案 0 :(得分:0)
df['Group'] = df.groupby(['gw_mac', 'mac']).cumcount()
dfs = dict(tuple(df.groupby('Group')))