使用带有部分对象的 Joblib 内存库

mot*_*m79 6 python caching partial joblib

我有一个带有两个参数的函数:

def foo(x,y):
   # some complicated math
   return result
Run Code Online (Sandbox Code Playgroud)

我使用functools库定义了部分:

f1 = partial(foo,1)
f2 = partial(foo,2)
Run Code Online (Sandbox Code Playgroud)

现在我想使用该joblib.Memory库将结果缓存在磁盘中以避免重新计算。

from joblib import Memory
mem = Memory(cachedir = '/tmp')    
f1c = mem.cache(f1)
f2c = mem.cache(f2)
res1 = f1c(10)
res2 = f1c(10)
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我收到警告:

JobLibCollisionWarning: Cannot detect name collisions
for function 'unknown
Run Code Online (Sandbox Code Playgroud)

也不会缓存结果。有没有办法在内存库中使用部分对象?