【问题标题】:Distributed training in Tensorflow using multiple GPUs in Google Colab在 Google Colab 中使用多个 GPU 在 Tensorflow 中进行分布式训练
【发布时间】:2019-09-18 19:42:51
【问题描述】:

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

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

Console output

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

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

【问题讨论】:

    标签: tensorflow gpu distributed-computing google-colaboratory


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2018-05-12
      • 1970-01-01
      • 2021-10-03
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 2020-07-19
      相关资源
      最近更新 更多