问题标签 [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.

0 投票
0 回答
499 浏览

python - 使用带有 ProcessPoolExecutor 的 pathos

可以将 concurrent.futures (ProcessPoolExecutor) 与 pathos 一起使用吗?

问这个是因为当我尝试使用时:

... executor.map()

我会得到:

PicklingError: Can't pickle : attribute lookup builtin .function failed

我知道我们可以使用 pathos.multiprocess 来代替默认的多进程,并解决像这样的一些问题,问题是当我尝试使用期货实现并行处理时,我无法设置解决方案来修复 pickle 错误感伤。

任何想法 ?

谢谢。

0 投票
0 回答
4152 浏览

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 进行方法酸洗/解酸:

我也尝试使用pathospackage 没有任何运气。
我知道代码应该在
if __name__ == '__main__':块下调用,但我想知道这是否可以通过对代码的最小更改来完成。

0 投票
1 回答
1118 浏览

python - Pathos.multiprocessing 的池似乎是非本地的?

我的代码可以

现在,在我实际涉及的更多代码中,内存使用量一直在增长。代码应该什么都不占用,但是如果我用 12 个内核运行它,这 12 个内核最初将占用将近 1mb 内存,但在几个小时的运行时间中,每个内核将占用几个 GB。

所以,我认为该池会泄漏内存,并且我最好在每次迭代后关闭它:

但是,现在,经过几次迭代,我得到了

this pool.map()在线。如果我创建一个新的

并尝试运行test.map(),我得到同样的错误。这很奇怪,我已经初始化了一个新变量......确实pathos.processing.ProcessingPool具有独特进程池的功能,如果我关闭一个,我就关闭所有

在没有内存泄漏的情况下实现pathos.multiprocessing.ProcessingPool内部循环的正确方法是什么?

当我改为使用multiprocessing.Pool时,不会出现问题。

0 投票
0 回答
98 浏览

python - 无法通过池化获得多处理结果

首先为我犯的任何错误道歉。我是 StackOverflow 的新手,我还在习惯它。

背景:我尝试通过多处理训练多个 keras 模型。这些 Keras 模型存储在三个列表中(目前每个列表有 50 个模型)。我使用的函数有三个模型作为输入(每个列表一个)以及一些训练数据和一个 ID。输出应该是评估分数和给定的 ID。

我的第一次尝试是从标准 python 库中导入多处理。

事实证明,这个多处理应用程序不起作用,因为 pickle 作为序列化工具。所以我下载了 Pathos 和 Dill 来解决这个问题。我的代码是这样的:

如果我运行这段代码,一切正常,我得到这个输出。

如果我添加方法 result.get() 麻烦就开始了。

输出是这样的:

从这里开始的最后一部分重复了自己:

所以我的问题是:

  1. 有什么根本上的错误吗?
  2. Keras 模型存储在一个列表中。所以通过将它们插入到函数中,模型的权重仍然是持久的,对吧?

再次,如果我做了任何愚蠢的新手事情,我很抱歉。

谢谢,

伦纳特

0 投票
0 回答
481 浏览

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

0 投票
1 回答
395 浏览

python - 带有多处理 pathos 库的简单 python 程序

跟进这个问题pathos multiprocessing cannot pickle

运行代码在一个:

这是更多信息:

到底是怎么回事?为什么不工作?Pathos 库不应该使用莳萝而不是酸洗吗?

0 投票
1 回答
801 浏览

python - 为多处理序列化对象很慢——有没有办法只序列化一次?

我正在尝试并行化一个在 Python 中接收对象的函数:

在使用 Pathos 时,map 函数会在将对象分发到处理器之前自动对对象进行挖掘。

但是,每次对对象进行挖掘大约需要 1 分钟,并且我需要运行此函数最多 100 次。总而言之,在运行之前序列化对象需要将近 2 个小时。

有没有办法只序列化一次,并多次使用它?

非常感谢

0 投票
2 回答
408 浏览

python - 悲情池声明被绞死

我的程序似乎没有超出 Pool(5) 语句的范围。我在 Windows 服务器上使用 python 3.6,具有 8 个虚拟 CPU 的 64 位虚拟机。

代码如下

它在语句 Pool(5) 处挂起。我也尝试过 ProcessingPool(5),结果相同。

0 投票
1 回答
779 浏览

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我的网络)。

任何人都可以给我的任何帮助都会很棒!

0 投票
1 回答
2296 浏览

python - Python多处理,在循环中多次使用池在第一次迭代后卡住

我有以下情况,我在 for 循环中创建一个池,如下所示(我知道它不是很优雅,但出于酸洗的原因我必须这样做)。假设它pathos.multiprocessing相当于python的multiprocessing库(因为它取决于一些与这个问题无关的细节)。我有以下要执行的代码:

现在我的问题:循环成功运行第一次迭代。但是,在第二次迭代时,算法突然停止(没有完成pool.map操作。我怀疑生成了僵尸进程,或者进程不知何故switched。下面你会发现我到目前为止所尝试的所有内容。

上面的代码在我的 mac 上运行良好。但是,当我将它上传到具有以下规格的集群上时,我得到了它在第一次迭代后卡住的错误:

这是pathos的多处理库文件的链接