主页 > 元宇宙 > 正文

Batch大小不一定是2的n次幂!ML资深学者最新结论(2)

2022-09-06 12:37来源:未知编辑:admin

扫一扫

分享文章到微信

扫一扫

关注99科技网微信公众号

最大批量训练

鉴于MobileNetV3架构和输入映像大小,上一轮中样本数量相对较小,因此GPU利用率约为70%。 为了调查GPU满载时的训练速度,本轮把样本数量增加到512,使GPU的计算利用率接近100%。 △ 由于GPU内存限制,无法使用大于515的样本数量 可以看出,跟上一轮结果一样,不管样本数量是否是2的n次幂,训练速度的差异几乎可以忽略不计。

多GPU训练

基于前两轮测试评估的都是单个GPU的训练性能,而如今多个GPU上的深度神经网络训练更常见。为此,这轮进行的是多GPU培训。 正如我们看到的,2的n次幂 (256) 的运行速度并不比255差太多。

测试注意事项

在上述3个基准测试中,需要特别声明的是: 所有基准测试的每个设置都只运行过一次,理想情况下当然是重复运行次数越多越好,最好还能生成平均和标准偏差,但这并不会影响到上述结论。 此外,虽然R教授是在同一台机器上运行的所有基准测试,但两次运营之间没有特意相隔很长时间,因此,这可能意味着前后两次运行之间的GPU基本温度可能不同,并可能稍微影响到运算时间。

结论

可以看出,选择2的n次幂或8的倍数作为batch大小在实践中不会产生明显差异。 然而,由于在实际使用中已成为约定俗成,选择2的n次幂作为batch大小,的确可以帮助运算更简单并且易于管理。 此外,如果你有兴趣发表学术研究论文,选择2的n次幂将使你的论文看上去不那么主观。 尽管如此,R教授仍然认为,batch的最佳大小在很大程度上取决于神经网络架构和损失函数。 例如,在最近使用相同ResNet架构的研究项目中,他发现batch的最佳大小可以在16到256之间,具体取决于损失函数。 因此,R教授建议始终把调整batch大小,作为超参数优化的一部分。 但是,如果你由于内存限制而无法使用512作为batch大小,那么则不必降到256,首先考虑500即可。

作者Sebastian Raschka

Sebastian Raschka,是一名机器学习和 AI 研究员。 他在UW-Madison (威斯康星大学麦迪逊分校) 担任统计学助理教授,专注于深度学习和机器学习研究,同时也是Lightning AI的首席 AI 教育家。 另外他还写过一系列用Python和Scikit-learn做机器学习的教材。

99科技网:http://www.99it.com.cn

  • 共2页:
  • 上一页
  • 1
  • 2
  • 下一页
  • 相关推荐