是将Pytorch和ProcessPoolExecutor合并可行?

问题描述 投票:0回答:1
I创建了一个结构,该结构提供了一个数据集,因为它选择了ProcessPoolExecutor,并且输入是数据集的索引。 我可以提供MWE,但我尝试了几种方法,所有方法都产生了类似叉炸弹的方法。 我认为原因是Pytorch的一些内部多进程执行,但Ian无法在此假设上提供一些证据。

所以问题:是否有一种方法可以在Pytorch中使用数据进行多进程,该数据无法从(不同的形状)创建批处理,而无需创建叉子?

目标是在过程结束时保存数据到磁盘,因此我不必关心同步(并且数据最终太大而无法将所有数据存储在所有数据中)。

很高兴有一些代码尝试复制问题。 我有两个可能的猜测:

这可能是Multiprocess和Python Futures之间的某些交互,这可能会发生,因为您没有将任何上下文(MP_Context)带到创建池时的默认值(MP_Context)。这可能会破坏火炬产卵。尝试将上下文设置为火炬的上下文,该上下文由Spawn()呼叫返回。

在性能成本中,尝试将pytprch线程限制为1或2,池中的相同内容。执行此操作时,请监视内存使用量,

我认为,要么python多进程的复制过程使内部火炬值不变,直到炸弹直到炸弹。或叉之间的一些内存副本正在填充您的公羊。

pytorch parallel-processing
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.