1. 单机多卡并行
GPU 安装靠得太紧,容易烧掉。下面这张图,用了一个月就烧掉了一块GPU。
2. 多GPU训练 training 从零开始实现
LeNet实现
w是完整的,X,y都是一小块
分布式不变快,的原因
- data读取不变快
- batch_size 没有根据GPU的核数增加,一般会根据GPU的个数,乘以每个GPU可以处理的batch_size.
learning rate 也需要增大,一般是1.5倍
3. 简洁实现 pytorch
尝试调参
batch_size, lr 都调大,性能提升80%。
4. Q&A
-
- 最近keras从TensorFlow分离,书籍会不会需要重新整理。大概率是变化不大。
-
- batch norm 是一种正则,但是精度不能提升。为什么? 沐神也不知道。。。
-
- all_reduce 先集合所有GPU的数据到一个GPU中,然后计算求和(举例子),再把结果分发回其它GPU。 all_gather?
-
- learning rate 太大会导致训练不收敛,也会导致准确率震荡比较大。
参考
https://www.bilibili.com/video/BV1vU4y1V7rd/?spm_id_from=trigger_reload