最近,我对将分布式培训整合到我的Tensorflow项目中产生了兴趣。我正在使用Google Colab和Python3来实现一个带有定制的、分布式的训练循环的神经网络,如本指南中所述:https://www.tensorflow.org/tutorials/distribute/training_loops
在“创建分发变量和图形策略”部分的指南中,有一些代码的图片,这些代码基本上设置了一个“MirroredStrategy”,然后打印生成的模型副本的数量,请参见下面的内容。
据我所知,输出表明MirroredStrategy只创建了模型的一个副本,因此,只有一个GPU将用于训练模型。我的问题是: Google Colab是否仅限于在单个GPU上进行培训?
我尝试过在使用和不使用图形处理器加速的情况下调用MirroredStrategy(),但每次只得到一个模型副本。这有点令人惊讶,因为当我在Python中使用多处理包时,我得到了四个线程。因此,我预计有可能在Google Colab中并行训练四个模型。Tensorflow实现分布式培训有问题吗?
发布于 2019-09-21 01:16:43
在Google colab上,您只能使用一个GPU,这是来自google的限制。但是,您可以在不同的gpu实例上运行不同的程序,因此可以通过创建不同的colab文件并将它们与gpu连接,但您不能将同一模型并行放置在多个gpu实例上。镜像startegy没有问题,从个人经验来看,如果你有多个GPU,它工作得很好。
https://stackoverflow.com/questions/57999776
复制相似问题