问题标签 [joblib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
37 浏览

python - 如何找到joblib创建的pickle文件

Joblib 使用 pickle 将对象传递给子进程。这些泡菜文件存储在哪里?运行并行作业时出现 IOError,因为 pickle 文件填满了磁盘空间。他们需要被删除。

0 投票
1 回答
428 浏览

python - 如何使用 joblib 并行化缓存函数

我想并行化一个用 joblib.Memory 缓存的函数,但是我收到以下错误:

这是代码:

0 投票
3 回答
2360 浏览

python - joblib 的中间结果

我正在尝试学习该模块作为pythonjoblib中内置模块的替代方案。multiprocessing我习惯于multiprocessing.imap在可迭代对象上运行函数并在结果进入时返回结果。在这个最小的工作示例中,我不知道如何使用 joblib:

哪个打印:

我想看看输出:

或类似的东西,表明迭代MP(...)没有等待所有结果完成。对于更长的演示更改n_jobs=-1range(100).

0 投票
0 回答
472 浏览

python - 集群中的 joblib.load() 无法加载文件

简介
我正在将一些在普通笔记本电脑上运行的代码移植到带有 MPI 的集群 (HPC)。
我正在处理的是一个令人尴尬的并行问题,我将不同的文件路径发送给一群工作人员。每个对应的文件都包含一个先前使用joblib.dump()函数 with生成的 numpy 数组lzma compression=2

详细信息
所有文件都保存在同一目录
中 文件列表生成示例joblib.dump()
- File1.lzma
- File1.lzma_01.npy.z
- File2.lzma
- File2.lzma_01.npy.z

如果我将工作人员上带有 .lmza 扩展名(例如 File1.lzma)的文件的路径传递给工作joblib.load()人员,则无法加载该文件并给我一个错误。如果我用 .lzma_01.npy.z 传递文件也是一样的。我的猜测是因为这两个文件都需要,并且在 HPC 的情况下,文件位于同一目录中是不够的(在我的笔记本电脑上运行的代码就足够了,并且文件已正确加载)

问题
1) 我的假设正确吗?
2)有没有办法将两个文件路径都传递给joblib.load()
3)这是缺少的功能,我应该重新处理文件并用泡菜保存它们吗?
4)我完全错了吗?

谢谢

0 投票
1 回答
513 浏览

python - 为什么 `joblib.delayed` 不能用作装饰器?

该包joblib有一个函数delayed,它捕获传递给函数的参数。例如,它可以像这样使用:

后一种用法让我觉得这可以像任何其他装饰器一样使用。其文档支持这一点:

joblib.delayed(函数,check_pickle=True)

装饰器用于捕获函数的参数。

但是,这失败了:

我试过这个Python 2.7.12

0 投票
1 回答
4092 浏览

python - 如何使用joblib.Memory缓存Python类成员函数的输出

我想使用joblib.Memory库缓存类的成员函数的输出。这是一个示例代码:

但是,我收到以下错误:

有没有办法使用 Memory 或任何其他装饰器缓存类的成员函数?

0 投票
1 回答
4959 浏览

python - scikit-learn joblib:权限错误导入,以串行模式运行

当我尝试从脚本或导入 joblib 时出现以下权限错误python -c 'import joblib'

  • joblib 已安装并通过 pip 强制重新安装
  • 以超级用户身份导入
  • 我对 joblib 文件夹设置了完全权限chmod -R 777 /usr/local/lib/python2.7/dist-packages/joblib;无济于事:权限错误仍然存​​在

因此,即使每个用户和组都对 joblib 目录拥有完整的 rwx 权限,它也会给我一个权限错误。如何确定在导入时对哪个目录 joblib 进行写权限检查?为什么它甚至在我指定写操作之前进行检查?

0 投票
0 回答
1800 浏览

python - sklearn RandomForest 模型上 32/64 位序列化异常的解决方法

如果我们在 64 位机器上使用 joblib 序列化 randomforest 模型,然后在 32 位机器上解压,就会出现异常:

之前有人问过这个问题:Scikits-Learn RandomForrest training on 64bit python wont open on 32bit python。但自 2014 年以来,这个问题一直没有得到回答。

学习模型的示例代码(在 64 位机器上):

在 32 位机器上解压的示例代码:

我的问题是:如果我们必须在 64 位机器上学习并将其移植到 32 位机器进行预测,是否有任何通用的解决方法?

编辑:尝试直接使用pickle而不是joblib。仍然有同样的错误。该错误发生在核心pickle库中(对于joblib和pickle):

0 投票
0 回答
363 浏览

python - 如何在 Python 中有效地在 2D 图像上并行化 scikit SVM 分类

我正在使用 scikit-learn 包对 2D 图像进行 SVM 分类。每个像素有 9 个特征作为分类依据。假设我有一个成功训练的分类器clf,我想用它来对该 2D 图像执行分类,即 3D 数组input(Xdim,Ydim,#features)。以最简单但效率极低的方式,这将是这样的:

加速这个过程的有效方法是什么?在上面的例子中,只给了分类器一个点,而它可以完美地处理向量(#samples X #features),所以svm_classification应该以更智能的方式使用该函数。我正在考虑使用“joblib”及其“并行”模块(https://pythonhosted.org/joblib/parallel.html),但我不确定我应该如何在 3D 数组上执行此操作。有没有办法为输入数据的自动切片指定块大小?我应该手动重塑输入数组吗?我想是什么让我自己找不到正确的答案是输入数据(3D)的形状,它应该会产生一个 2D 分类图像。任何正确方向的建议将不胜感激!

0 投票
1 回答
561 浏览

python - 已弃用的 Scikit-learn 模块阻止 joblib 加载它

我有一个使用 sklearn.hmm 模块与 joblib 腌制的隐马尔可夫模型。显然,在 0.17.x 版本中,该模块已被弃用并移至 hmmlearn。我无法加载模型并收到以下错误:

ImportError:没有名为“sklearn.hmm”的模块

我试图恢复到 0.16.x 版本,但仍然无法加载模型。我收到以下错误:

ImportError:libopenblas.so.0:无法打开共享对象文件:没有这样的文件或目录

我无权访问源代码来重新创建模型并重新腌制它

我正在运行 Python 3.5

有没有其他人遇到过这个问题,你找到解决方案了吗?有谁知道自弃用以来 scikit-learn 是否有任何方法来保证持久性?