我最近对将分布式训练纳入我的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的分布式训练实现存在问题吗?
我尝试过使用GPU加速和未使用GPU加速调用MirroredStrategy(),但每次仍只得到一个模型副本。这有点令人惊讶,因为当我在Python中使用多进程包时,我可以得到四个线程。因此,我期望在Google Colab中可以并行训练四个模型。Tensorflow的分布式训练实现存在问题吗?