一、多卡训练原理
1.为什么要多卡训练:
简单来说,有两种原因:第一种是模型在一块GPU上放不下,两块或多块GPU上就能运行完整的模型(如早期的AlexNet)。第二种是多块GPU并行计算可以达到加速训练的效果。想要成为“炼丹大师“,多GPU并行训练是不可或缺的技能。
常见的多卡训练方法有:
1.模型并行方式(多机多卡):
如果模型特别大,GPU显存不够,无法将一个显存放在GPU上,需要把网络的不同模块放在不同GPU上,这样可以训练比较大的网络。

2.数据并行方式(单机多卡):
将整个模型放在一块GPU里,再复制到每一块GPU上,同时进行正向传播和反向误差传播。相当于加大了batch_size。

2.单机多卡训练原理:
我们主要对数据并行的单机多卡训练进行介绍,在数据并行方式中,我们的训练流程一般如下:
- 指定主机节点
- 主机节点划分数据,一个batch数据平均分到每个机器上(数据并行)

本文详细介绍了单机多卡训练的原理,包括模型并行和数据并行方法,如何使用PyTorch的DataParallel进行并行计算,以及如何解决loss计算问题和模型保存。通过实例演示了如何在MNIST数据集上应用这些技术。

511

被折叠的 条评论
为什么被折叠?



