【文献阅读】Accurate Large Minibatch SGD Training ImageNet in 1 hour

摘要:

问题: 大网络和大数据集导致训练时间增长,distributed synchronous SGD通过划分SGD minibatches over a pool of parallel workers 解决这个问题,然而per-worker workload 必须大,导致了nontrivial growth in SGD minibatch size, 削弱了效率。

在imagenet数据集上大的minibatch导致优化困难,但是当addressed的时候网络能没有精度损失。

方法:1. 使用了hyper-parameter-free linear scaling rule for adjusting learning rates as a function of minibatch size. 2. a new warmup scheme to overcome optimization challenges early in training.

效果:caffe2训练resnet50,minibatch size 8192 在256 gpu上花费一小时,精度与小minibatch 相同。使用商品硬件实现了90%的scaling efficiency 当从8到256 gpu时。加速互联网级别的视觉训练

1.介绍

大网络和数据集导致训练时间增长

方法:

1.提出无需超参数的linear scaling rule调整学习率高效的linear scaling要求nontrivial communicaiton algotithms

2.提出warmup 策略,一开始使用低的学习率克服早期的优化问题

效果:

实验在caffe2框架和big basin gpu servers上进行,实现与baseline 验证集错误率相同,训练错误率曲线和mini batch相同,在mask r-cnn上实验证明在object detection and instance segmentation上也有用

工业界训练internet-scale数据集,研究界从单gpu到多gpu简化migrating 算法而无需超参数搜索,实验中将faster r-cnn和resnets上从1块gpu迁移到8块gpu。

large minibatch sgd

2.1 大minibatch的学习率

linear scaling rule:minibatch size乘k,学习率乘k。

linear scaling rule保证和小minibatch的精度相同,并且训练曲线相同

比较了k minibatch,每个batch size为n,迭代k次,学习率 η \eta η ;和一个大小为kn的大的minibatch 学习率 η ^ \hat{\eta} η^

在这里插入图片描述

但是这个假设在两种情况下不存在,一种是训练初期,网络变化的很快(提出warmup 解决)。第二种是 minibatch size 不可以无限的缩放,虽然结果在很大的 size 时也会保持很高的精度,但是在超过某个点后会迅速的下降

2.2warmup

提出warmup解决大minibatch中使用linear scaling rule训练早期网络变化快的问题。

constant warmup:前5个epoch采用低学习率 η \eta η,之后采用 η ^ \hat{\eta} η^学习率。优化效果不好,训练错误。

gradual warmup:逐渐增长学习率。

2.3batch normalization with large minibatches

3. Subtleties and pitfalls of distributed SGD

这部分说当采用distributed SGD进行训练时,需要对weight decay等参数进行修改

weight decay: 如果没有 weight decay , 就会有很多种方法来缩放学习率,例如缩放loss 的梯度项,但是缩放 loss 和缩放学习率并不等价

momentum correction:如果将学习率引入冲量SGD之后,在改变学习率之后应用momentum correction

gradient aggregation: 对于 k 个 worker,每一个 worker 的 minibatch size 为 n,梯度更新的时候除以 kn ,而 loss layer 通常会将每一个 worker 的平均梯度加起来

img

data shuffling :Remark 4: Use a single random shufflfling of the training data (per epoch) that is divided amongst all k workers.

4.communication

4.1 gradient aggregation

梯度需要通过allreduce进行聚合,每个gpu本地计算的梯度随着参数量增加聚合困难。

通过优化的allreduce实现near-linear SGD scaling

https://zhuanlan.zhihu.com/p/79030485

https://zhuanlan.zhihu.com/p/276122469

三步实现服务器之间和服务器内的通信: (1) buffers from the 8 GPUs within a server are summed into a single buffer for each server, (2) the results buffers are shared and summed across all servers. (3) the results are broadcast onto each GPU.

intraserver服务器内的通信:NCCL使用GPU kernel加速intraserver collective,

interserver服务器间通信:实现了两种带宽受限场景下的算法。1.recursive halving and doubling algorithm 2.bucket algorithm (also ring algorithm)

halving/doubling 更快

5.实验

实现在imagenet 数据集上使用256worker 一个小时训练resnet50,精度和小minibatch相同,无需额外的超参数,mini batch可达8k。

5.1实验设计

Imagenet 数据集,1.28 million训练图片,top1错误率在50000验证图片上

resnet50模型,无论minibatch size大小训练90epoch,

5.2优化和泛化

比较三个warmup策略,no warmup, constant warmup 和 gradual warmup

training error :large minibatch sizes are challenged by optimizaiton difficulties in early training. If these difficulties are addressed, the training error and its curve can match a small minibatch baseline closely.

validation error: if the optimizaition issues are addressed, there is no apparent generalizaiton degradation boserved using large minibatch training.

5.3分析实验

Minibatch size vs error: validation error 基本不变当mini batch从64-8k

training curves for various minibatch sizes: 发现当最后validation error curve和baseline接近的时候,training curve也接近。不接近的时候,training curve也不接近

alternative learning rate rules:改变学习率会改变训练曲线,即使最后错误率近似,

batch normalization initialization:大minibatch更容易被optimiziation difficulties影响

5.4 generalization to detection and segmentation

从大的minibatch中学到的特征在不同任务(classification, detection, segmentation)和不同数据集(imagenet coco)都具有普适性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1 channel pruned yolov5-based深度学习方法是一种快速准确的物体检测方法。 Yolov5是一种深度学习模型,用于目标检测任务。它具有快速高效的特点,适用于需要实时处理大量目标的场景。然而,传统的yolov5模型在一些应用中存在着计算复杂度高、模型参数多等问题。 为了解决这些问题,提出了一种基于通道剪枝的方法。通道剪枝是一种模型压缩技术,通过减少模型中的参数量和计算量,来实现模型的快速推理。 该方法首先对初始的yolov5模型进行训练,然后使用通道剪枝算法来剪枝模型中的冗余通道。剪枝后,模型的参数数量和计算量显著减少,同时保持了模型的准确性。 经过实验证明,采用1 channel pruned yolov5-based深度学习方法的物体检测任务的准确性与传统yolov5模型相当,但速度更快。这种方法具有广泛的应用前景,可以在实时场景下实现快速高效的目标检测,如智能交通系统、安防监控等。 总而言之,1 channel pruned yolov5-based深度学习方法是一种快速准确的物体检测方法,通过通道剪枝技术实现模型的压缩,提高了模型的计算效率,适用于需要实时处理大量目标的应用场景。 ### 回答2: 1通道修剪 YOLOv5 基于深度学习的快速准确方法: 深度学习在计算机视觉领域的广泛应用,如目标检测和识别,已经取得了显著的成果。然而,现有的深度学习模型在实时性和准确性之间存在着一种权衡。为了解决这个问题,我们提出了一种基于 YOLOv5 的通道修剪方法,能够实现同时快速和准确的目标检测。 通道修剪是一种通过减少模型中的冗余通道来实现模型压缩和加速的技术。我们观察到,在YOLOv5这样的目标检测模型中,存在着一些冗余的通道,这些通道对目标检测的准确性没有太大的贡献。因此,我们利用剪枝算法对模型中的冗余通道进行剪枝,从而减小模型的大小并提高模型的推理速度。 具体而言,我们首先通过分析模型中各个通道对目标检测的贡献来确定哪些通道是冗余的。然后,我们使用剪枝算法对这些冗余通道进行剪枝,剔除它们对模型推理的影响。通过这种方式,我们实现了模型的压缩和加速。 我们在几个常见的目标检测数据集上进行了实验,结果表明,我们的通道修剪方法不仅能够在保持高准确性的同时,大大减小模型的大小,还能够显著提高模型的推理速度。这使得我们的方法在需要快速而准确的目标检测的场景下具有很大的应用潜力,例如实时视频分析和自动驾驶等领域。 总而言之,我们提出的基于 YOLOv5 的通道修剪方法,通过剪枝冗余通道实现了模型的快速和准确的目标检测。我们的方法对于需要实时性和准确性的应用具有很大的潜力,在未来的研究中可以进一步优化和扩展。 ### 回答3: 基于Yolov5的深度学习方法是一种用于快速而准确的目标检测的通道剪枝方法。 在目标检测任务中,Yolov5是一种常用的深度学习模型,它能够高效地检测图像中的多个目标物体。然而,由于模型设计较为复杂,计算量较大,因此需要较长的处理时间。 为了解决这个问题,研究人员提出了一种基于通道剪枝的方法来对Yolov5模型进行优化。通道剪枝是一种模型压缩技术,它通过剪枝模型中不重要的通道(特征图)来降低计算量,从而实现模型的加速。 这种方法首先使用初始训练集进行基准训练,得到一个初始的Yolov5模型。然后,通过计算每个通道的重要性得分,对模型进行剪枝。具体而言,通道的重要性得分可以通过计算其对目标检测精度的影响来衡量。 一旦剪枝完成,剩余通道将被重新组合成一个新的模型。与原始模型相比,这个新模型计算量更小,因此能够实现更快的推理速度。同时,通过精心设计的剪枝策略和迭代训练,剪枝后模型的准确率也能得到保证。 总之,这种基于通道剪枝的Yolov5深度学习方法可以在保持高准确率的同时,显著缩短模型的推理时间。这对于需要快速且准确地进行目标检测的应用场景非常有用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值