问题标签 [pathos]
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 - 使用带有 ProcessPoolExecutor 的 pathos
可以将 concurrent.futures (ProcessPoolExecutor) 与 pathos 一起使用吗?
问这个是因为当我尝试使用时:
... executor.map()
我会得到:
PicklingError: Can't pickle : attribute lookup builtin .function failed
我知道我们可以使用 pathos.multiprocess 来代替默认的多进程,并解决像这样的一些问题,问题是当我尝试使用期货实现并行处理时,我无法设置解决方案来修复 pickle 错误感伤。
任何想法 ?
谢谢。
python - 无法腌制本地对象
例如,我想在此代码中使用多进程包。我试图调用该函数create_new_population
并将数据分发到 8 个处理器,但是当我这样做时,我得到了 pickle 错误。
通常该函数会像这样运行:self.create_new_population(self.pop_size)
我尝试像这样分发作品:
我得到
或Can't pickle local object 'exhaust.__init__.<locals>.tour_select'
PermissionError: [WinError 5] Access is denied
我已经仔细阅读了这个线程,并尝试使用Steven Bethard 的方法绕过错误,以允许通过 copyreg 进行方法酸洗/解酸:
我也尝试使用pathos
package 没有任何运气。
我知道代码应该在if __name__ == '__main__':
块下调用,但我想知道这是否可以通过对代码的最小更改来完成。
python - Pathos.multiprocessing 的池似乎是非本地的?
我的代码可以
现在,在我实际涉及的更多代码中,内存使用量一直在增长。代码应该什么都不占用,但是如果我用 12 个内核运行它,这 12 个内核最初将占用将近 1mb 内存,但在几个小时的运行时间中,每个内核将占用几个 GB。
所以,我认为该池会泄漏内存,并且我最好在每次迭代后关闭它:
但是,现在,经过几次迭代,我得到了
this pool.map()
在线。如果我创建一个新的
并尝试运行test.map()
,我得到同样的错误。这很奇怪,我已经初始化了一个新变量......确实pathos.processing.ProcessingPool
具有独特进程池的功能,如果我关闭一个,我就关闭所有?
在没有内存泄漏的情况下实现pathos.multiprocessing.ProcessingPool
内部循环的正确方法是什么?
当我改为使用multiprocessing.Pool
时,不会出现问题。
python - 无法通过池化获得多处理结果
首先为我犯的任何错误道歉。我是 StackOverflow 的新手,我还在习惯它。
背景:我尝试通过多处理训练多个 keras 模型。这些 Keras 模型存储在三个列表中(目前每个列表有 50 个模型)。我使用的函数有三个模型作为输入(每个列表一个)以及一些训练数据和一个 ID。输出应该是评估分数和给定的 ID。
我的第一次尝试是从标准 python 库中导入多处理。
事实证明,这个多处理应用程序不起作用,因为 pickle 作为序列化工具。所以我下载了 Pathos 和 Dill 来解决这个问题。我的代码是这样的:
如果我运行这段代码,一切正常,我得到这个输出。
如果我添加方法 result.get() 麻烦就开始了。
输出是这样的:
从这里开始的最后一部分重复了自己:
所以我的问题是:
- 有什么根本上的错误吗?
- Keras 模型存储在一个列表中。所以通过将它们插入到函数中,模型的权重仍然是持久的,对吧?
再次,如果我做了任何愚蠢的新手事情,我很抱歉。
谢谢,
伦纳特
python-3.x - 使用 Keras 进行多处理 - 张量不是该图的元素
我尝试使用预测功能,但遇到了一些问题。我的 keras 模型在同一个包内的不同脚本(nnGenerator)中编译。然后编译模型的函数将模型返回到主脚本,在那里进行处理。
以下是我的代码的简化版本:
当我将此模型输入 pathos 多处理池时。我收到诸如 ValueError: Tensor Tensor("concatenate_1/concat:0", shape=(?, 3), dtype=float32) is not an element of this graph 之类的错误。:
模型摘要如下所示:
所以毕竟我不知道为什么这段代码不起作用。我搜索了所有相关问题。但是由于我的新手身份,我可能没有正确理解它。
任何帮助表示赞赏,在此先感谢,Lennart
python - 为多处理序列化对象很慢——有没有办法只序列化一次?
我正在尝试并行化一个在 Python 中接收对象的函数:
在使用 Pathos 时,map 函数会在将对象分发到处理器之前自动对对象进行挖掘。
但是,每次对对象进行挖掘大约需要 1 分钟,并且我需要运行此函数最多 100 次。总而言之,在运行之前序列化对象需要将近 2 个小时。
有没有办法只序列化一次,并多次使用它?
非常感谢
python - 悲情池声明被绞死
我的程序似乎没有超出 Pool(5) 语句的范围。我在 Windows 服务器上使用 python 3.6,具有 8 个虚拟 CPU 的 64 位虚拟机。
代码如下
它在语句 Pool(5) 处挂起。我也尝试过 ProcessingPool(5),结果相同。
python - Pathos 无法腌制由 GDAL 模块创建的 SwigPyObject
我有一个类,它使用 GDAL 模块(https://pypi.org/project/GDAL/)打开一个大的光栅图像,并在多个位置从中提取小图像,这些位置由传递的坐标元组列表定义。我想使用 Pathos 处理大量坐标列表,就像我的代码的简化版本一样:
运行它会出现以下错误:
仔细看,Pathos 似乎正确地使用了 Dill 和 Multiprocess。那么有没有一种方法可以并行处理 SwigPyObjects,无论是使用 Pathos 还是其他方式?
几周前有人问过类似的问题,但没有得到任何答案(Python pathos error can't pickle SwigPyObject objects),当我以前无法使用 Pathos 时,我问了一个相关问题(How can type 'SwigPyObject be registered在 Python 中使用 copy_reg.pickle?)。
我在 Windows 7 中使用 Python 3.6.5 遇到此错误,在 PyCharm 中开发,使用虚拟环境,我需要的任何包都已从 PyPi 下载的 .whl 文件安装到该虚拟环境中(我无法正常使用 pip install我的网络)。
任何人都可以给我的任何帮助都会很棒!
python - Python多处理,在循环中多次使用池在第一次迭代后卡住
我有以下情况,我在 for 循环中创建一个池,如下所示(我知道它不是很优雅,但出于酸洗的原因我必须这样做)。假设它pathos.multiprocessing
相当于python的multiprocessing
库(因为它取决于一些与这个问题无关的细节)。我有以下要执行的代码:
现在我的问题:循环成功运行第一次迭代。但是,在第二次迭代时,算法突然停止(没有完成pool.map
操作。我怀疑生成了僵尸进程,或者进程不知何故switched
。下面你会发现我到目前为止所尝试的所有内容。
上面的代码在我的 mac 上运行良好。但是,当我将它上传到具有以下规格的集群上时,我得到了它在第一次迭代后卡住的错误:
这是pathos的多处理库文件的链接