问题标签 [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 回答
63 浏览

python - Python Joblib 导致循环

我正在使用 joblib 加载 sklearn 分类器。我在一个班级里有这个,但它似乎一直在调用班级的__init__函数。这是一个插图:

出于某种原因,当我调用 joblib.load(self.FILENAME) 时,pickle 尝试再次实例化整个类。这会导致问题,因为它会__init__再次调用,然后再次尝试加载分类器。

我不太确定为什么会这样。有任何想法吗?感谢您的帮助,如果您需要更多说明,请告诉我。

0 投票
0 回答
960 浏览

python - 如果使用 Parallel 命令启动 unix 管道,管道命令在 cntrl-c 之后会报错

如果我与 joblib 并行启动一个进程,该进程使用 unix 管道 () 调用子进程,其中sed | uniq | blabla许多进程在使用 Ctrl-C 成功退出 python 进程后会向终端写入错误消息。

有什么方法可以避免使用 joblib Parallel 进行上述输出?

0 投票
3 回答
42786 浏览

python - Python scikit 学习 n_jobs

这不是一个真正的问题,但我想了解:

  • 在 Win7 4 核 8 GB 系统上从 Anaconda 发行版运行 sklearn
  • 在 200.000 个样本*200 值表上拟合 KMeans 模型。
  • 使用 n-jobs = -1 运行:(将if __name__ == '__main__':行添加到我的脚本后)我看到脚本启动了 4 个进程,每个进程有 10 个线程。每个进程使用大约 25% 的 CPU(总计:100%)。似乎按预期工作
  • 以 n-jobs = 1 运行:停留在单个进程上(不足为奇),有 20 个线程,并且还使用 100% 的 CPU。

我的问题:如果库仍然使用所有内核,那么使用 n-jobs(和 joblib)有什么意义?我错过了什么吗?它是特定于 Windows 的行为吗?

0 投票
3 回答
17010 浏览

python - 如何存储 TfidfVectorizer 以供将来在 scikit-learn 中使用?

我有一个TfidfVectorizer矢量化文章集合,然后是特征选择。

现在,我想存储它并在其他程序中使用它。我不想TfidfVectorizer()在训练数据集上重新运行和特征选择器。我怎么做?我知道如何使用使模型持久化,joblib但我想知道这是否与使模型持久化相同。

0 投票
0 回答
1240 浏览

python - Flask + sklearn 不能 joblib.load AttributeError 'module' 对象没有属性

烧瓶应用。
我试图joblib.load并获得AttributeError 'ManyToOneClassifier'
但是我已经用类导入了所有模块。如果我尝试将它加载到模块中的类中,那么它......再次出错。
但是当我在 __ main __ 中加载它时 - 很好,一切正常......上传时,uwsgi在我的 __ main __ 中看不到任何东西。
我是 C# 程序员(.NET、Microsoft 等),对 nginx 和 Linux 不太了解。

__ 初始化 __.py

0 投票
1 回答
1119 浏览

python - 使用索引列表有效填充 NumPy 数组

我知道如何执行一个并行循环joblib,返回一个列表作为结果。

但是,是否可以numpy并行填充预定义的矩阵?

想象一下以下最小的示例矩阵和数据:

请注意,这column_data是已排序且唯一的。data是列表的列表,而不是矩形矩阵。

循环:

可以并行化这个循环吗?在没有并行化的情况下填充70,000 x 10,000矩阵非常慢。

0 投票
1 回答
1464 浏览

python - python - joblib 并行:使用“with”语句重用工作人员

我在 joblib 中使用 Multiprocessing 模块。我正在编写一个迭代算法,我需要在每次迭代时调用 Parallel 。我怀疑我在这里承受了很多开销,因为我在每次调用时都会创建和销毁一个工人池。

joblib 文档对此案例有参考。但是,该解决方案似乎不适用于 Python 2.7:

这会产生错误消息:

另一个 stackoverflow 帖子(Python Multiprocessing Lib Error (AttributeError: __exit__))的响应提到 Python 2.7 中的 with 语句需要上下文管理器。他们建议定义一个包含 Parallel 调用的上下文管理器。我尝试了以下方法:

但是,我收到以下错误消息:

有人知道我如何在 Python 2.7 中为 Parallel 正确构建上下文管理器吗?

0 投票
1 回答
34051 浏览

python - sklearn 转储模型使用 joblib,转储多个文件。哪一个是正确的模型?

我做了一个示例程序来使用 sklearn 训练 SVM。这是代码

当我转储模型文件时,我得到了这么多文件。:

['clf.pkl','clf.pkl_01.npy','clf.pkl_02.npy','clf.pkl_03.npy','clf.pkl_04.npy','clf.pkl_05.npy','clf. pkl_06.npy'、'clf.pkl_07.npy'、'clf.pkl_08.npy'、'clf.pkl_09.npy'、'clf.pkl_10.npy'、'clf.pkl_11.npy']

如果我做错了什么,我会感到困惑。或者这是正常的吗?什么是 *.npy 文件。为什么有11个?

0 投票
2 回答
18512 浏览

python - 大型 Pandas Dataframe 并行处理

我正在访问一个非常大的 Pandas 数据框作为全局变量。此变量通过joblib并行访问。

例如。

以这种方式访问​​原始 df 似乎跨进程复制数据。这是出乎意料的,因为原始 df 在任何子进程中都没有改变?(或者是吗?)

0 投票
1 回答
2553 浏览

python - joblib 中的 batch_size 和 pre_dispatch 到底是什么意思

从这里的文档https://pythonhosted.org/joblib/parallel.html#parallel-reference-documentation 我不清楚究竟是什么batch_size意思pre_dispatch

让我们考虑使用'multiprocessing'后端、2 个作业(2 个进程)并且我们有 10 个任务要计算的情况。

我认为:

batch_size- 一次控制腌制任务的数量,所以如果你设置batch_size = 5- joblib 将腌制并立即发送 5 个任务到每个进程,到达那里后,它们将被进程依次解决,一个接一个。当batch_size=1且仅当该进程完成前一个任务时,joblib 将一次腌制并发送一个任务。

为了说明我的意思:

所以这段代码:

等于此代码(在性能方面):

我对吗?那pre_dispatch意味着什么呢?