只用了224秒!索尼在ImageNet上训练出了ResNet-50

近日,索尼公司的研究人员宣布,他们在ImageNet上只花了224秒就训练出了一个ResNet 50架构。

得到的网络在ImageNet的验证集上具有75%的top-1准确率。他们通过使用NVIDIA的2.100 Tesla V100 Tensor Core GPU实现了这一记录。除了这个记录,他们还使用1.088 Tesla V100 Tensor Core GPU获得了90%的GPU伸缩效率。

将神经网络训练成多台机器有两个主要的挑战:要训练的批大小和梯度的同步。

为了减少训练神经网络的时间,可以使用一个小规模批处理来快速地将网络权重“推到正确的方向”。为了更新权重,错误会给出一个梯度,指示需要更新权重的“方向”。当使用小规模批处理时,您可以非常快速频繁地确定这个方向。

然而,小规模微批处理使得神经网络倾向于找到局部性能的最小值。索尼使用批处理大小控制解决了这个问题,这是一种最近被越来越多地使用的技术。通过对批处理尺寸的控制,逐渐增大小规模批处理的尺寸,避免局部最小的损失情况。通过观察更多的图像,神经网络对需要改进的平均误差方向有了更好的认识,而不是仅仅根据几个小样本确定误差方向。索尼将前5个轮次视为热身轮次,批大小较低,而之后的轮使用了较大规模的批处理。索尼还使用了混合精度训练,在FP16中进行向前/向后计算。

第二个问题是,在机器之间梯度的同步可能很慢。对于不同GPU之间的通信,需要大量的带宽。索尼的研究人员采用了2D-Torus all reduce算法来减少通信开销。在这种通信算法中,GPU被放置在一个虚拟网格中。首先,梯度水平传递,然后垂直地传递到所有列,然后在最后一次传递中再次水平传递。这意味着,如果X是水平方向上的GPU数量,则需要2(X-1) GPU到GPU的操作。

索尼的研究人员使用工具神经网络库(NLL)及其CUDA扩展作为DNN培训框架。对于GPU之间的通信,他们使用了NVIDIA Collective Communications Library (NCCL) version 2。

去年,多个团队试图在尽可能短的时间内训练ResNet 50架构。在2017年9月,InfoQ报道IBM在50分钟内培训了相同的神经网络架构。当时,IBM实现了更高的可伸缩性效率,但只使用了256个GPU。在问答中,Hillery Hunter说批处理的大小是最具挑战性的事情之一,但是他们希望他们的方法可以扩展到更多的GPU。在本文中,他们研究了多个GPU的GPU伸缩效率,在使用3264 GPU进行训练时,效率为52.47%。

索尼公司的研究人员将他们的研究结果发表在《ImageNet/ResNet-50 Training in 224 Seconds》上,您可以在arXiv上找到这篇论文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值