我想使用joblib.Memory缓存一个函数 但是我收到以下错误:
TypeError: can't pickle function objects
以下是代码:
import joblib
mem = joblib.Memory(cachedir='/tmp')
@mem.cache
def foo(x):
# do some complicated task
return x + 1
if __name__ == '__main__':
f = joblib.delayed(foo)
res = joblib.Parallel(n_jobs=-2)(f(x) for x in range(100))
答案 0 :(得分:2)
尝试使用不同的名称作为装饰函数,例如unbindModel()
而不是装饰器。另请参阅https://github.com/joblib/joblib/issues/226