【发布时间】: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