【问题标题】:Mirroring a multi-gpu model across multiple GPUs跨多个 GPU 镜像多 GPU 模型
【发布时间】:2019-11-03 23:14:31
【问题描述】:

我有一个使用多个 GPU 进行计算的 tensorflow (tf2.0)/keras 模型。模型中有 2 个分支,每个分支都在单独的 GPU 上。

我有一个要用于训练的 4 GPU 系统,我想镜像这个模型,以便 GPU 1 和 2 包含一个模型,而 GPU 3 和 4 包含镜像模型。

tf.distribute.MirroredStrategy 会自动处理这个镜像吗?还是假设我的模型将是单个 GPU 模型?

如果tf.distribute.MirroredStrategy 无法处理这个问题,是否有人对如何自定义MirroredStrategy 以实现此培训结构有任何建议?

【问题讨论】:

  • 这是一个是/否的问题。
  • 对你的 python 文件运行两次调用,并使用 CUDA_VISIBLE_DEVICES 将相关的 GPU 暴露给每个调用。例如。;运行第一次调用“CUDA_VISIBLE_DEVICES=0,1 python train_model.py”。镜像策略会将训练模型分布在可用的 gpus 上。

标签: tensorflow tf.keras multi-gpu


【解决方案1】:

这听起来很像您需要进行自定义训练循环。 镜像策略在每个 GPU 上复制模型,但由于您的模型已经在两个 GPU 上,我认为它不能正常工作。

但是您可以尝试一下,并使用 nvidia-smi 检查 tensorflow 正在做什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多