给出一个类和2个方法,其中A,B.
在A中尝试执行以下命令时,我收到"TypeError:无法pickle instancemethod对象":
joblib.Parallel(n_jobs=-1)(joblib.delayed(self.B)(arg1, arg2, arg3) for arg1 in arg1_values_list)
Run Code Online (Sandbox Code Playgroud)
我在Stackoverflow上找到了几个关于instancemethod的线程,其中一部分甚至与joblib有关,但我仍然无法克服这个错误.
编辑:
以下代码:
from sklearn.externals.joblib import Parallel, delayed
def a(self, x):
print x
return x*10
class c(object):
def b(self):
Parallel(n_jobs=-1)(
delayed(a)(self, i)
for i in range(10))
test_c = c()
test_c.b()
Run Code Online (Sandbox Code Playgroud)
正常运行时运行正常.
但尝试使用"python -m cProfile"进行配置文件时失败
仅将 Python 无状态函数传递给joblib.Parallel. 您可以尝试import dill注册实例方法的酸洗支持:https://pypi.python.org/pypi/dill(不过您的情况可能会有所不同)。
| 归档时间: |
|
| 查看次数: |
9200 次 |
| 最近记录: |