所以问题:是否有一种方法可以在Pytorch中使用数据进行多进程,该数据无法从(不同的形状)创建批处理,而无需创建叉子?
目标是在过程结束时保存数据到磁盘,因此我不必关心同步(并且数据最终太大而无法将所有数据存储在所有数据中)。
很高兴有一些代码尝试复制问题。 我有两个可能的猜测:
这可能是Multiprocess和Python Futures之间的某些交互,这可能会发生,因为您没有将任何上下文(MP_Context)带到创建池时的默认值(MP_Context)。这可能会破坏火炬产卵。尝试将上下文设置为火炬的上下文,该上下文由Spawn()呼叫返回。在性能成本中,尝试将pytprch线程限制为1或2,池中的相同内容。执行此操作时,请监视内存使用量,
我认为,要么python多进程的复制过程使内部火炬值不变,直到炸弹直到炸弹。或叉之间的一些内存副本正在填充您的公羊。