gpt4 book ai didi

python - 多个进程共享一个 Joblib 缓存

转载 作者:太空狗 更新时间:2023-10-29 23:58:56 30 4
gpt4 key购买 nike

我正在使用 Joblib 在我的 python 脚本中缓存一个计算量大的函数的结果。该函数的输入参数和返回值是 numpy 数组。对于单次运行我的 python 脚本,缓存工作正常。现在我想并行地生成我的 python 脚本的多个运行以扫描实验中的一些参数。 (函数的定义在所有运行中保持不变)。

有没有办法在并行运行的多个 python 脚本之间共享 joblib 缓存? 这将节省大量函数评估,这些评估在不同的运行中重复,但不会在单次运行中重复。我在 Joblib's documentation 中找不到这是否可行

最佳答案

指定一个通用的、固定的cachedir并装饰你想要缓存的函数

from joblib import Memory
mem = Memory(cachedir=cachedir)

@mem.cache
def f(arguments):
"""do things"""
pass

或者只是

def g(arguments):
pass

cached_g = mem.cache(g)

然后,即使您跨进程、跨机器工作,如果您程序的所有实例都可以访问 cachedir,那么公共(public)函数调用可以透明地缓存在那里。

关于python - 多个进程共享一个 Joblib 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25033631/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com