1

目前我的机器中有 4 1080 个 GPU,并且我有一个非常强大的 CPU 来执行我的图像分类项目。但是,由于我的模型非常小,但我的训练数据非常大(无法将整个数据集放在内存中),我必须动态读取和处理一批样本。现在我发现 GPU 的使用率只有 50% 左右,而我所有的 CPU 内核都得到了充分利用。

所以一个解决方案是我想将我的输入管道(我使用 tf.data.dataset 作为我的输入管道)拆分到另一台没有 GPU 的机器上,以加速输入管道,这样我就可以获得更多的利用率在 GPU 上。我可以分配我的输入管道有两个选项:1)只需分配数据增强,因此一台机器读取所有原始图像并将其发送到另一台机器,然后将其发送回具有 GPU 的机器进行训练。2)只需将整个/部分数据集复制到所有仅使用 CPU 的机器上,它们独立处理自己的输入管道并将其发送回带有 GPU 的机器进行训练。

我认为实施选项 2) 会容易得多。我没有在不同机器上编码分布式培训的经验。我在网上阅读的所有示例都是关于在具有自己的 GPU 的多台机器上进行分布式训练的。就我而言,由于我只打算单独分发输入管道,是否有任何更简单的实现示例用于此目的?

4

0 回答 0