使用Google Colab中的多个GPU在Tensorflow中进行分布式培训

时间:2019-09-18 19:42:51

标签: tensorflow gpu distributed-computing google-colaboratory

我最近对将分布式培训纳入我的Tensorflow项目感兴趣。我正在使用Google Colab和Python 3来实现具有自定义,分布式,训练循环的神经网络,如本指南所述: https://www.tensorflow.org/tutorials/distribute/training_loops

在该指南的“创建分配变量和图形的策略”部分下,有一些代码的图片,它们基本上设置了“ MirroredStrategy”,然后打印模型的已生成副本的数量,请参见下文

Console output

据我所知,输出表明MirroredStrategy仅创建了该模型的一个副本,因此,将仅使用一个GPU来训练模型。我的问题:Google Colab是否仅限于在单个GPU上进行培训?

我尝试在有和没有GPU加速的情况下都调用MirroredStrategy(),但是每次都只能得到一个模型副本。这有点令人惊讶,因为当我在Python中使用多处理程序包时,我得到了四个线程。因此,我希望有可能在Google Colab中并行训练四个模型。 Tensorflows实施分布式培训是否存在问题?

1 个答案:

答案 0 :(得分:0)

在Google colab上,您只能使用一个GPU,这是Google的限制。但是,您可以在不同的gpu实例上运行不同的程序,因此通过创建不同的colab文件并将它们与gpus连接起来,但是您不能在多个gpu实例上并行放置相同的模型。 镜像策略没有问题,从个人经验来看,如果您拥有多个GPU,它会很好地工作。