要解决“不可pickle化的并行joblib”问题,可以考虑以下几种方法:
import joblib
import dill
# 使用dill作为序列化库
joblib.parallel_backend('loky', pickle=dill)
# 使用joblib并行处理任务
results = joblib.Parallel(n_jobs=-1)(joblib.delayed(function)(arg) for arg in args)
import joblib
# 定义一个普通函数,替代lambda函数
def my_function(x):
return x**2
# 使用普通函数进行并行处理
results = joblib.Parallel(n_jobs=-1)(joblib.delayed(my_function)(arg) for arg in args)
import joblib
# 使用不同的backend进行并行处理
results = joblib.Parallel(n_jobs=-1, backend='loky')(joblib.delayed(function)(arg) for arg in args)
import joblib
import cloudpickle
# 使用cloudpickle作为序列化库
joblib.parallel_backend('loky', pickle=cloudpickle)
# 使用joblib并行处理任务
results = joblib.Parallel(n_jobs=-1)(joblib.delayed(function)(arg) for arg in args)
根据具体的情况,选择适合的解决方法来解决“不可pickle化的并行joblib”问题。
上一篇:不可逆序列哈希函数?