为什么要使用多GPU并行训练,单卡和多卡训练,bs和lr的关系
训练 为什么 关系 GPU 并行 lr BS 使用
2023-09-11 14:14:26 时间
参考
https://jishuin.proginn.com/p/763bfbd63d50
理解
为什么要使用多GPU并行训练
简单来说,有两种原因:第一种是模型在一块GPU上放不下,两块或多块GPU上就能运行完整的模型(如早期的AlexNet)。第二种是多块GPU并行计算可以达到加速训练的效果。想要成为“炼丹大师“,多GPU并行训练是不可或缺的技能。
常见的多GPU训练方法:
1.模型并行方式:如果模型特别大,GPU显存不够,无法将一个显存放在GPU上,需要把网络的不同模块放在不同GPU上,这样可以训练比较大的网络。(下图左半部分)
2.数据并行方式:将整个模型放在一块GPU里,再复制到每一块GPU上,同时进行正向传播和反向误差传播。相当于加大了batch_size。(下图右半部分)
单卡和多大训练,bs和lr的关系
众所周知,learning rate的设置应和batch_size的设置成正比,即所谓的线性缩放原则(linear scaling rule)。但是为什么会有这样的关系呢?这里就Accurate Large Minibatch SGD: Training ImageNet in 1 Hour这篇论文来深入探讨一下其中的原理,以及深度学习模型在分布式训练中需要注意的事情。
相关文章
- 计算机等级考试二级C语言程序设计专项训练题——程序填空题(二)
- 自动混合精度训练
- 基于预训练模型的语义匹配
- 预训练模型小型化与部署实战
- transformer训练和预测的理解
- 基于SNN脉冲神经网络的Hebbian学习训练过程matlab仿真
- sklearn.utils.shuffle-训练数据打乱的最佳方法
- MindSpore 初探, 使用LeNet训练minist数据集
- 山东理工大学ACM平台题答案关于C语言 1137 C/C++经典程序训练7---求某个范围内的所有素数
- PyTorch 深度学习实战 |用 TensorFlow 训练神经网络
- Unity ML-Agents 之 环境配置(Anaconda 下载安装等),简单的搭建场景实现简单训练的Demo(内含详细步骤)
- 蓝桥杯——入门训练
- Cascade R-CNN训练自己的数据