Tensor Flow 支持使用多个GPU 或者机器实现深度学习模型的并行训练,但在此之前需要了解并行训 练的原理以及如何并行化地训练深度学习模型才更加合理。大体上,实现深度学习模型的并行化训练、可以分为两种不同的方式一一数据并行的方式和模型并行的方式,在本节将对这两种方式进行介绍并比较二者间的优劣。首先看一下不使用并行的方式训练深度学习模型的过程,整个过程如下图所示。在每一轮法代训练 中,当前参数的取值和 batch 数据传入到模型中,并经过模型的前向传播过程得到计算的结果,随后反向传播算法会根据损失函数计算参数的梯度并更新参数,更新后的参数会在下一轮迭代训练中和其他 batch数据再经过模型的前向传播过程。
在并行训练深度学习模型时,使用数据并行的方式会在不同设备( GPU或 CPU)上运行这个法代的过程,而使用模型并行的方式会将整个过程 的计算图拆分成多个子图,交由不同设备( GPU 或 CPU)来运行。
同步模式下的数据并行
同步模式下的数据并行如下图所示。
从图 14-7 中可以看到,在每一轮迭代开始时,这些设备首先会统一读 取当前参数的取值,并获取一个 mini-batch 的数据。然后在不同设备上运行 前向传播过程得到模型的预测结果,以及运行反向传播过程得到在各自 mini-batch 上参数的梯度 ΔP。因为训练数据不同,因此即便所有设备使用的参数是一致的&#