如何使用 joblib 并行化缓存函数
how to parallelize cached functions using joblib
我想并行化使用 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))
尝试为装饰函数使用不同的名称,例如 foo_cached = mem.cache(foo)
而不是装饰器。另见 https://github.com/joblib/joblib/issues/226
我想并行化使用 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))
尝试为装饰函数使用不同的名称,例如 foo_cached = mem.cache(foo)
而不是装饰器。另见 https://github.com/joblib/joblib/issues/226