TensorFlow可以用单个GPU,加速深度学习模型的训练过程,但要利用更多的GPU或者机器,需要了解如何并行化地训练深度学习模型。
常用的并行化深度学习模型训练方式有两种:同步模式和异步模式。
下面将介绍这两种模式的工作方式及其优劣。
如下图,深度学习模型的训练是一个迭代的过程。
在每一轮迭代中,前向传播算法会根据当前参数的取值,计算出在一小部分训练数据上的预测值,然后反向传播算法,再根据损失函数计算参数的梯度并更新参数。
异步模式的训练流程图
在并行化地训练深度学习模型时,不同设备(GPU或CPU),可以在不同训练数据上,运行这个迭代的过程,而不同并行模式的区别在于,不同的参数更新方式。
异步模式的训练流程
从异步模式的训练流程图中可以看到,在每一轮迭代时,不同设备会读取参数最新的取值。
–但因为不同设备,读取参数取值的时间不一样,所以得到的值也有可能不一样。
根据当前参数的取值,和随机获取的一小部分训练数据,不同设备各自运行反向传播的过程,并独立地更新参数。
–可以认为异步模式,就是单机模式复制了多份,每一份使用不同的训
常用的并行化深度学习模型训练方式有两种:同步模式和异步模式。
下面将介绍这两种模式的工作方式及其优劣。
如下图,深度学习模型的训练是一个迭代的过程。
在每一轮迭代中,前向传播算法会根据当前参数的取值,计算出在一小部分训练数据上的预测值,然后反向传播算法,再根据损失函数计算参数的梯度并更新参数。
异步模式的训练流程图
在并行化地训练深度学习模型时,不同设备(GPU或CPU),可以在不同训练数据上,运行这个迭代的过程,而不同并行模式的区别在于,不同的参数更新方式。
异步模式的训练流程
从异步模式的训练流程图中可以看到,在每一轮迭代时,不同设备会读取参数最新的取值。
–但因为不同设备,读取参数取值的时间不一样,所以得到的值也有可能不一样。
根据当前参数的取值,和随机获取的一小部分训练数据,不同设备各自运行反向传播的过程,并独立地更新参数。
–可以认为异步模式,就是单机模式复制了多份,每一份使用不同的训