|ImageNet训练再创纪录,EfficientNet异军突起,ResNet:感受到了威胁( 三 )


学习率规划
为了在使用大批量时保持模型质量 , 作者还采用了学习率预热和线性缩放技术 。
在保持epoch数固定的同时增加全局批量大小将导致更新权重的迭代数较少 。 为了解决这个问题 , 作者将线性缩放规则应用于批次中每256个样本的学习率 。
但是 , 较高的学习率会导致发散 。 因此 , 作者还应用了学习率预热 , 其中训练以较小的初始学习率开始 , 并在可调整的时期内逐渐提高学习率 。 此外 , 作者比较了各种学习速率规划 , 例如指数衰减和多项式衰减 , 发现对于LARS优化器 , 多项式衰减计划可实现最高的准确率 。
分布式评估
评估循环的执行是EfficientNet的标准云TPU实现的另一个计算瓶颈 , 因为评估和训练循环是在单独的TPU上执行的 。
在传统的TPUEstimator中 , 评估是在单独的TPU上进行的 , 训练的执行速度要比评估快 , 导致端到端时间很大程度上取决于评估时间 。
为了克服这个问题 , 作者利用Kumar等人所述的分布式训练和评估循环 。 它在所有TPU上分配了训练和评估步骤 , 并允许扩展到更大数量的副本 。
分布式批处理归一化
作者使用Ying等人提出的方案 , 通过将副本的子集分组在一起 , 在副本之间分布批处理归一化 。 这种优化可通过权衡TPU之间的通信成本来提高最终精度 。 分组在一起的副本数是可调超参数 。
最终的批次归一化批次大小(每个副本子集中的样本总数)也会影响模型质量以及收敛速度 。 对于大于16的副本子集 , 作者还探索了将副本分组在一起的二维切片方法 。
精度
目前已经观察到 , 使用bfloat16浮点格式来训练卷积神经网络可以达到甚至超过使用传统单精度格式(例如fp32)训练的网络的性能 , 这可能是较低精度的正则化效果所致 。
作者实现了混合精度训练 , 以利用bfloat16的性能优势 , 同时仍保持模型质量 。 在实验中 , bfloat16用于卷积运算 , 而所有其他运算都使用fp32 。 使用bfloat16格式进行卷积可提高硬件效率 , 而不会降低模型质量 。
|ImageNet训练再创纪录,EfficientNet异军突起,ResNet:感受到了威胁
本文插图

|ImageNet训练再创纪录,EfficientNet异军突起,ResNet:感受到了威胁
本文插图


推荐阅读