问题标签 [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 - _pickle.PicklingError: 不能腌制: __main__ 上的属性查找 get_data 失败
我正在尝试运行以下脚本,据报道该脚本适用于某些人:
引发错误。当我以交互方式运行代码时,我发现它write_data_csv
是破坏脚本的调用。
例如,脚本在使用之前运行没有错误,write_data_csv
但该行valid_lst = write_data_csv("./validate-64x64-data.csv", validate_frames, lambda x: crop_resize(x, 64))
抛出此错误:
我不确定我的下一步是如何解决这个问题。我发现了其他有关属性查找失败的 StackOverflow 问题,但它们要么本质上不同,要么没有答案。
python - joblib.Parallel 通过挂在 Windows 上的 spyder 运行
我在工作中在 Windows Server 2013 上运行 Python 3.5.1。我有一些令人尴尬的并行任务,它们似乎可以在 Python 2.7 上使用基本相同的代码,但我无法弄清楚如何让它在 Python 3.5.1 上运行。
我正在使用 Anaconda 2.4.1
代码看起来像这样......我已经把它精简到了最低限度。
代码main.py
代码__init__.py
代码amodule.py
这与声明的必要性有什么关系if __name__ == '__main__':
吗?我认为我不需要这个,因为它已经在语句Parallel
中受到保护,并且应该只在调用模块时运行,这应该只发生一次。def
__main__
我应该补充一点,如果我改变n_jobs=1
,amodule.py
一切正常。
更新:
所以经过进一步审查,看来这可能与spyder有关。我正在使用 spyder 2.3.8。当我让 spyder 执行时,这是一个专用窗口,它可以工作。但是当它在交互式 IPython 控制台中运行时,它会失败。我也可以直接从命令行运行程序而不会出现问题。
更新 2:
经过进一步审查,这确实与 IPython 位于与 *.py 文件不同的工作目录有关。把那些排成一行,这很有效。
python - Python:joblib 不适用于自定义函数
我正在尝试在 python 中使用并行计算包 joblib。我可以执行下面的例子并得到结果
但是,以下代码行不通。
当我运行上面的代码时,它会一直运行而不会产生任何结果或消息。
谁能找出这种奇怪行为的原因(我正在使用 Windows)?谢谢
numpy - 在网格搜索中评分返回 numpy.core.memmap 而不是 numpy.Number
GridSearchCV
当使用LogisticRegression
更大的数据集时,我们能够(仅在我们的应用程序 atm 的上下文中)在 Ubuntu 15.04 和 OS X 上使用 scikit 0.17 重现以下问题。
我们已经多次尝试在应用程序的上下文之外重现它,但没有任何运气。我们对它进行了以下更改cross_validation.py
并解决了我们的特定问题:
更多信息:
- 我们在 python 2.7
- 我们使用 a
Pipeline
来确保所有输入都是数字
我的问题如下:
- 我们如何去重现这个问题以导致
scorer
返回 amemmap
? - 还有其他人有这个特殊问题吗?
- 我们所做的改变
cross_validation.py
实际上是一个体面的解决方案吗?
python - ipyparallel Hub Connection Timeout with parallel CV in scikit learn
我正在尝试使用 ipyparallel 训练多个 RandomForest 分类器。我的设计是嵌套的 CV 循环外部 CV 用于删除方差,内部 GridSearchCV 带有内置 ( n_jobs = -1
) 以找到 RandomForest 的最佳估计器(# Forests,#trees in Forest),并使用 ipyparallel 和 sge 训练每个组合(拟合函数) (训练森林是最里面的一步)。
如果我使用 GridSearchCV 运行n_jobs = 1
,一切都会顺利且缓慢地运行。但是,如果我n_jobs > 1
在外部 CV 循环的第一次迭代(非常快)之后,我得到一个 HubConnectionTimeout 错误。
我已经附上了代码。和错误。
CV 循环:
ipyparallel : (适合 RUSRandomForestClassifier) - 由 GridSearchCV 从上面调用
错误:
python - 解开巨大的泡菜文件
我使用 joblib.dump() 为 RainForestClassifer 训练样本生成了大约 6 GB 的巨大泡菜文件。每次执行都必须使用 joblib.load() 加载 pickle 对象以处理输入数据。加载时间非常长,随后会影响脚本执行的性能。
有没有一种方法可以将对象一旦加载就可以持久保存在内存中,并使其可用于后续的 python 执行,而无需调用 joblib.load()。
使用像 sqlite 这样的数据库是否有助于更快地加载数据?
python - 如何使用 joblib Python 返回一个矩阵?
我有一个返回列表的函数。我正在使用 joblib 进行并行处理。
我想val
在从 1 到 500 的每次迭代中存储所有重新排列的列表,然后使用它们。
如果没有并行,我会这样做:
我可以并行执行此操作吗?
python - 并行化的正确工作流程是什么:在集群或多进程上运行?
我想调用一个类似于 parallelize.map(function, args) 的函数,它返回一个结果列表,并且用户对实际过程视而不见。我想将调用子进程并行化到另一个受益于多核的 unix 程序的功能之一。
我首先尝试了 ipython-cluster-helper。这适用于我的设置,但我在其他几台机器上安装时遇到了问题。我还必须在设置过程中询问集群的名称。我还没有看到其他程序为您在集群上启动作业,所以我不知道这是否是公认的做法。
joblib 似乎是并行化的标准,但它一次只能使用一个集群或计算机。这也可以,但速度要慢得多,因为它没有使用集群。
此外,如果程序运行时间过长而无法确保人们使用集群,我正在运行此代码的服务器会抱怨。我是否编写了另一个脚本来仅在我们的集群上运行该程序——如果我使用了 joblib?
目前,我在 setup.py 中添加了特殊参数来添加集群名称并在必要时安装 ipython-cluster-helper。当调用 map 时,它首先检查 ipython-cluster-helper 和集群名称是否可用,使用它们,否则使用 joblib。
还有什么其他方法可以实现这一目标?我正在寻找一种标准方法来执行此操作,该方法适用于大多数有或没有集群的机器,因此我可以发布代码并使其易于使用。
谢谢。
python - 在 Azure ML Studio 中增加 /dev/shm 的大小
我正在尝试在 Azure ML Studio 笔记本中执行以下代码:
我收到了这个错误:
有了n_jobs=1
它可以正常工作。
我认为这是因为joblib
库试图将我的数据保存到/dev/shm
. 问题是它只有64M容量:
我无法通过设置JOBLIB_TEMP_FOLDER
环境变量来更改此文件夹(export
不起作用)。
感谢您的任何建议!
python - 使用joblib在sklearn中重用由cross_val_score拟合的模型
我在python中创建了以下函数:
我认为为了进行交叉验证,sklearn 必须适合您的功能。
但是,当我稍后尝试使用它时(f 是我在上面保存的 pkl 文件joblib.dump(alg, filename, compress=1, cache_size=1e9))
:
我在第一行没有收到错误(所以看起来负载正在工作),但它告诉我NotFittedError: Estimator not fitted, call
适合before exploiting the model.
下一行。
我究竟做错了什么?我不能重复使用适合计算交叉验证的模型吗?我在 scikits learn 中使用 cross_val_score 时查看了保持拟合参数,但要么我不明白答案,要么它不是我想要的。我想要的是用 joblib 保存整个模型,以便以后无需重新安装即可使用它。