一、前言
如果使用多GPU训练模型,推荐使用内置fit方法,较为方便,仅需添加2行代码。
MirroredStrategy
过程简介:
- 训练开始前,该策略在所有 N 个计算设备上均各复制一份完整的模型;
- 每次训练传入一个批次的数据时,将数据分成 N 份,分别传入 N 个计算设备(即数据并行);
- N 个计算设备使用本地变量(镜像变量)分别计算自己所获得的部分数据的梯度;
- 使用分布式计算的
All-reduce
操作,在计算设备间高效交换梯度数据并进行求和,使得最终每个设备都有了所有设备的梯度之和; - 使用梯度求和的结果更新本地变量(镜像变量);
- 当所有设备均更新本地变量后,进行下一轮训练(即该并行策略是同步的)。
首选说明一下,我们在下面会使用两个逻辑GPU来模拟多GPU
import tensorflow as tf
print(tf.__version__)
from