问题标签 [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.
python - Python Joblib 导致循环
我正在使用 joblib 加载 sklearn 分类器。我在一个班级里有这个,但它似乎一直在调用班级的__init__
函数。这是一个插图:
出于某种原因,当我调用 joblib.load(self.FILENAME) 时,pickle 尝试再次实例化整个类。这会导致问题,因为它会__init__
再次调用,然后再次尝试加载分类器。
我不太确定为什么会这样。有任何想法吗?感谢您的帮助,如果您需要更多说明,请告诉我。
python - 如果使用 Parallel 命令启动 unix 管道,管道命令在 cntrl-c 之后会报错
如果我与 joblib 并行启动一个进程,该进程使用 unix 管道 () 调用子进程,其中sed | uniq | blabla
许多进程在使用 Ctrl-C 成功退出 python 进程后会向终端写入错误消息。
有什么方法可以避免使用 joblib Parallel 进行上述输出?
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 的行为吗?
python - 如何存储 TfidfVectorizer 以供将来在 scikit-learn 中使用?
我有一个TfidfVectorizer
矢量化文章集合,然后是特征选择。
现在,我想存储它并在其他程序中使用它。我不想TfidfVectorizer()
在训练数据集上重新运行和特征选择器。我怎么做?我知道如何使用使模型持久化,joblib
但我想知道这是否与使模型持久化相同。
python - Flask + sklearn 不能 joblib.load AttributeError 'module' 对象没有属性
烧瓶应用。
我试图joblib.load并获得AttributeError 'ManyToOneClassifier'。
但是我已经用类导入了所有模块。如果我尝试将它加载到模块中的类中,那么它......再次出错。
但是当我在 __ main __ 中加载它时 - 很好,一切正常......上传时,uwsgi在我的 __ main __ 中看不到任何东西。
我是 C# 程序员(.NET、Microsoft 等),对 nginx 和 Linux 不太了解。
__ 初始化 __.py
python - 使用索引列表有效填充 NumPy 数组
我知道如何执行一个并行循环joblib
,返回一个列表作为结果。
但是,是否可以numpy
并行填充预定义的矩阵?
想象一下以下最小的示例矩阵和数据:
请注意,这column_data
是已排序且唯一的。data
是列表的列表,而不是矩形矩阵。
循环:
可以并行化这个循环吗?在没有并行化的情况下填充70,000 x 10,000
矩阵非常慢。
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 正确构建上下文管理器吗?
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个?
python - 大型 Pandas Dataframe 并行处理
我正在访问一个非常大的 Pandas 数据框作为全局变量。此变量通过joblib并行访问。
例如。
以这种方式访问原始 df 似乎跨进程复制数据。这是出乎意料的,因为原始 df 在任何子进程中都没有改变?(或者是吗?)
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
意味着什么呢?