子进程可以直接将数据直接交给Tensorflow,而无需通过主Python进程(避免使用GIL锁定?)>

问题描述 投票:0回答:1
我正在使用高IO模型(单个GPU可以处理600 MB /秒的不可压缩数据)。它需要大约4个CPU内核来单独处理IO,因此主要的训练循环过程无法做到这一点。

[当前,我有多个子过程,这些子过程对来自分布式文件系统的数据进行采样并写入本地tfrecords文件(数据集的大小超过了本地存储)。我的主要培训过程是使用TFRecordsDatasettf.data.Dataset.from_generator遍历文件,将它们写入磁盘。

可以,但是写磁盘只是为了再次读取它显然不是最佳选择。我想知道是否有更好的方法可以使用子过程将样本直接移交给Tensorflow。我无法通过Python将数据传递给主要的训练过程,因为它需要多个CPU内核才能移动那么多数据,以及Python的GIL瓶颈。

我试图将数据写入命名管道,但是TFRecordsDataset执行查找操作,因此无法从管道读取,只能从文件读取。还有其他想法吗?

我正在使用高IO模型(单个GPU可以处理600 MB /秒的不可压缩数据)。它需要大约4个CPU内核来单独处理IO,因此主要的训练循环过程无法做到这一点。 ...

python tensorflow subprocess
1个回答
0
投票
我想到了几件事。
© www.soinside.com 2019 - 2024. All rights reserved.