问题标签 [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 投票
1 回答
1619 浏览

python - Python 中的 numpy.save() 和 joblib.dump() 有什么区别?

我在 Python 中保存了很多离线模型/矩阵/数组,并遇到了这些函数。有人可以通过列出 numpy.save() 和 joblib.dump() 的优缺点来帮助我吗?

0 投票
2 回答
3345 浏览

python - 拯救随机森林

我想保存并加载一个合适的随机森林分类器,但出现错误。

错误是:

我必须初始化 forest2 还是什么?

0 投票
2 回答
8954 浏览

scikit-learn - 多处理支持的并行循环不能嵌套在线程下面

joblib 中出现此类问题的原因是什么?'多处理支持的并行循环不能嵌套在线程下,设置 n_jobs=1' 我应该怎么做才能避免这样的问题?

实际上,我需要实现在后台线程中运行大量计算并通过 UI 客户端轮询报告当前进度的 XMLRPC 服务器。它使用基于 joblib 的 scikit-learn。

PS:我只是将线程的名称更改为“MainThread”以避免此类警告,并且一切看起来都运行良好(按预期并行运行而没有问题)。这种解决方法将来可能会出现什么问题?

0 投票
1 回答
654 浏览

python - 使用 joblib 创建一个空的内存映射 numpy 数组

我正在使用一些相当大的数据集。本质上,我在内存映射的 numpy 数组上运行 scikit-learn 中的一些工具,因为它似乎允许我处理比我的计算机上的内存更大的数据集。

我有点喜欢 joblib 来做内存映射,因为你只需要指定文件。

但我似乎无法弄清楚如何分配一个新的空数组,比如 1 亿乘 200 的 numpy 数组,仅使用 joblib 而不将所有内容加载到内存中。

谢谢!

0 投票
1 回答
596 浏览

python - 2 个内核上 2 个独立计算的 joblib 并行化比串行慢

我试图用 numpy 并行化一些数据扩展,我发现并行化版本比串行版本花费的时间长几个数量级,所以我一定犯了一些愚蠢的错误。

首先,一些假数据来设置问题:

现在进行串行计算:我将组数据扩展为组成员的数组:

这是并行版本:

我在 4 核机器上运行此代码,因此原则上为两个群体独立执行计算应该会给我大约 2 倍的加速。相反,串行计算需要约 0.1 秒,而并行计算需要 9 秒。这里发生了什么?

0 投票
0 回答
646 浏览

python - 机器学习模型持久化

我一直在使用 scikit-learn 一段时间,我想知道在训练模型后是否有一种方法可以将 pickle-d 或 joblib 输出推送到数据库(最好是 joblib,原因如下:What are the different use joblib 与 pickle 的案例?),或者唯一的方法是使用对象存储服务,例如 Amazon S3?我很确定第二个,但我想知道是否有另一个工具可以将模型保存到数据库。

即使可以将结果保存到数据库中(不确定如何做到这一点,因为已保存模型的 joblib 结果由五个文件组成)开始时是否有效?为什么 joblib 会因此创建多个文件并将这些内容连接到一个文件中

执行上述转储后的示例输出(创建的文件之一的内容):

谢谢!

0 投票
4 回答
812 浏览

python - 选择性缓存/记忆的装饰器

我正在寻找一种构建装饰器的方法@memoize,我可以在如下函数中使用它:

然后,如果我这样做:

现在说我想强制缓存更新

在上面的结尾,我们总是有result4 = result3,但不一定result4 = result,这就是为什么需要一个选项来强制相同输入参数的缓存更新。

我该如何解决这个问题?

注意事项joblib

据我所知joblib支持.call,这会强制重新运行,但不会更新缓存

后续使用klepto

有没有办法让klepto(见@Wally的回答)默认将其结果缓存在特定位置?(例如/some/path/)并跨多个功能共享此位置?例如我想说

然后@memoize在同一路径下的给定模块中的几个函数。

0 投票
2 回答
2631 浏览

python - 如何在“joblib”Python 库中共享变量

我想使共享内存变量。但是 temp 的值为空 []。我该怎么做?

对于其他方法,我尝试了 pickle.dump 并加载。但是有一个锁问题。请给我建议!

0 投票
0 回答
111 浏览

python-2.7 - Sci-Kit 学习模型在使用 joblib 解压时加载不正确

我正在尝试使用http://scikit-learn.org/stable/modules/model_persistence.html中所述的 joblib 在 Sci-Kit Learn 中实现模型持久性。但是,当我重新加载模型时,我发现模型 coef_ 矩阵的所有行都设置为零,除了第一行。

给出:

而 RidgeTfIDF.coef_[1].nonzero()

当我使用 np.save 将 RidgeTfIDF.coef_ 的每一行保存在一个单独的文件中,然后从这些文件中重新加载时,模型工作正常。但是,这要慢得多,我想改为解决 joblib 问题。

0 投票
1 回答
1548 浏览

python - 并行for循环python

我想在 python 中并行化一个 for 循环。

循环由生成器提供,我预计有 10 亿个项目。

原来,那个joblib有一个巨大的内存泄漏

我不想在这个循环中存储数据,只是有时打印一些东西,但主线程会在几秒钟内增长到 1 GB 大小。

是否还有其他用于大量迭代的框架?