在Google Colab中使用多个GPU进行TensorFlow分布式训练

6
我最近对将分布式训练纳入我的Tensorflow项目感兴趣。我正在使用Google Colab和Python 3来实现具有自定义,分布式训练循环的神经网络,如本指南所述:https://www.tensorflow.org/tutorials/distribute/training_loops 在该指南的“创建分发变量和图形的策略”一节中,有一张代码截图,基本上设置了一个“MirroredStrategy”,然后打印出模型生成副本的数量,如下所示。 控制台输出 据我所知,输出表明MirroredStrategy只创建了一个模型副本,因此只有一个GPU将用于训练模型。我的问题是:Google Colab是否仅限于在单个GPU上进行训练?
我尝试过使用GPU加速和未使用GPU加速调用MirroredStrategy(),但每次仍只得到一个模型副本。这有点令人惊讶,因为当我在Python中使用多进程包时,我可以得到四个线程。因此,我期望在Google Colab中可以并行训练四个模型。Tensorflow的分布式训练实现存在问题吗?
1个回答

1
在Google Colab上,您只能使用一个GPU,这是Google的限制。但是,您可以在不同的GPU实例上运行不同的程序,通过创建不同的Colab文件并将它们连接到GPU来实现。但是,您不能将相同的模型放置在多个GPU实例中并行运行。从个人经验来看,镜像策略没有问题,如果您有多个GPU,则可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接