图像分类训练tricks
本文简单整理了一些图像分类训练tricks,后续可能会陆续加以补充。
1. 优化器
带momentum(=0.9)的SGD优化器的使用最多,收敛精度常常更好,但收敛速度慢,初始学习率设置要靠经验设置(参考值0.1)。
自适应优化器Adam、RMSProp、Adamw等收敛精度稍差,但收敛速度更快更稳定,Adam学习率参考值1e-4.
AdaBound在某些任务上数据集上,收敛速度可媲美Adam,收敛精度可媲美SGD,调节参数更少。
2. 学习率及学习率下降策略
SGD一般配合分段衰减策略piecewise_decay,例如初始学习率设为0.1,每30个epoch下降为原来的1/10
Adam等优化器可搭配余弦衰减策略cosine_decay,因学习率小的epoch较少,故最终模型精度欠佳,所以建议增加训练epoch
Batchsize增大时,线性增大学习率,可使收敛精度几乎不受影响
warmup 训练初期不宜使用较大的学习率,可采用warmup策略,在batch_size较大时,效果明显。结合cosine_decay,可采用带有warmup的cosine_decay策略。
2. 1 选择合适的学习率
利用一个epoch来获取学习率。首先设置一个非常小的学习率,对每个batch数据训练后,对初始学习率乘上一个常数,记录每个batch后的loss。根据一个epoch内的loss画图