python joblib在Windows平行并不工作甚至“if __name__ =='__main__':”被添加

python joblib在Windows平行并不工作甚至“if __name__ =='__main__':”被添加,第1张

概述python joblib在Windows平行并不工作甚至“if __name__ =='__main__':”被添加

我在windows上运行Python中的并行处理。 这是我的代码:

from joblib import Parallel,delayed def f(x): return sqrt(x) if __name__ == '__main__': a = Parallel(n_jobs=2)(delayed(f)(i) for i in range(10))

这里是错误信息:

Process PoolWorker-2: Process PoolWorker-1: Traceback (most recent call last): file "C:Usersyoyo__000.BIGBLACKAppDataLocalEnthoughtCanopyAppappdatacanopy-1.5.4.3105.win-x86_64libmultiprocessingprocess.py",line 258,in _bootstrap self.run() file "C:Usersyoyo__000.BIGBLACKAppDataLocalEnthoughtCanopyAppappdatacanopy-1.5.4.3105.win-x86_64libmultiprocessingprocess.py",line 114,in run self._target(*self._args,**self._kwargs) file "C:Usersyoyo__000.BIGBLACKAppDataLocalEnthoughtCanopyAppappdatacanopy-1.5.4.3105.win-x86_64libmultiprocessingpool.py",line 102,in worker task = get() file "C:Usersyoyo__000.BIGBLACKAppDataLocalEnthoughtCanopyUserlibsite-packagesjoblibpool.py",line 363,in get return recv() AttributeError: 'module' object has no attribute 'f'

使用>>将多个并行进程的输出传输到一个文件是否安全?

与windows群集上的并行Julia代码有关的问题

在windows *中的并行黄瓜/ Watir场景

cpu亲和力口罩(把线程放在不同的cpu上)

等待并行远程进程完成bash ssh

R中的doMC和foreach循环不工作

如何批量使用Image Magic批量转换多个子目录中的图像

你怎么能平行mmap来更快地读取文件?

XARGS,GREP和GNU并行

在linux shell脚本上并行化行(命令,进程…)

根据这个网站的问题是windows特定的:

是的:在linux下我们是分叉的,因此他们不需要腌制函数,而且工作正常。 在windows下,该功能需要被pickleable,即它需要从另一个文件导入。 这实际上是一个很好的做法:使模块推动重用。

我试过你的代码,它在linux下完美地工作。 在windows下,如果它是从脚本运行的,就像python script_with_your_code.py 。 但是在交互式Python会话中运行失败。 当我将f函数保存在单独的模块中并将其导入到交互式会话中时,它对我有用。

不工作:

互动会议:

>>> from math import sqrt >>> from joblib import Parallel,delayed >>> def f(x): ... return sqrt(x) >>> if __name__ == '__main__': ... a = Parallel(n_jobs=2)(delayed(f)(i) for i in range(10)) ... Process PoolWorker-1: Traceback (most recent call last): file "C:Python27libmultiprocessingprocess.py",in _bootstrap self.run() file "C:Python27libmultiprocessingprocess.py",**self._kwargs) file "C:Python27libmultiprocessingpool.py",in worker task = get() file "C:Python27libsite-packagesjoblibpool.py",line 359,in get return recv() AttributeError: 'module' object has no attribute 'f'

加工:


fun.py

from math import sqrt def f(x): return sqrt(x)

互动会议:

>>> from joblib import Parallel,delayed >>> from fun import f >>> if __name__ == '__main__': ... a = Parallel(n_jobs=2)(delayed(f)(i) for i in range(10)) ... >>> a [0.0,1.0,1.4142135623730951,1.7320508075688772,2.0,2.23606797749979,2.449489742783178,2.6457513110645907,2.8284271247461903,3.0]

总结

以上是内存溢出为你收集整理的python joblib在Windows平行并不工作甚至“if __name__ =='__main__':”被添加全部内容,希望文章能够帮你解决python joblib在Windows平行并不工作甚至“if __name__ =='__main__':”被添加所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1270452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存