【Pruning系列:一】Learning Efficient Convolutional Networks through Network Slimming

本文介绍了通过在网络中引入BN层的channel-wise scaling factor并应用L1正则化,来实现卷积网络的高效学习。通过使γ参数趋于0,可以有效地剪枝不重要的通道。在目标函数中,结合模型损失与γ的稀疏约束,逐步调整网络结构。实验结果显示,经过网络瘦身,γ值大部分接近0,表明大量通道被有效精简。

NS

机构

Tsinghua,Intel

【Pruning系列:二】Learning Efficient Convolutional Networks through Network Slimming|YOLOv3实践 |Pytorch 总结

motivation

训练中的剪枝

基于BN(Batch Normalization)层的广泛使用,在BN层加入channel-wise scaling factor 并对之加L1 regularizer使之稀疏,然后裁剪scaling factor值小的部分对应权重

在这里插入图片描述

  • 用 BN 层的 y 来表示卷积核的重要程度,y 小对应卷积核重要性低

    γ 非常小时,送入下一层的值就非常小,可以直接剪掉

  • 虽然可以通过删减 γ 值接近零的channel,但是一般情况下, γ 值靠近0的channel还是属于少数
    于是作者采用 L1 or smooth-L1 惩罚 γ ,来让 γ 值倾向于0

method

目标函数:

在这里插入图片描述

  • 第一项是模型预测所产生的损失<

Pruned-YOLO是种利用模型修剪来学习高效物体检测器的方法。 物体检测是计算机视觉领域的重要任务之,旨在从图像中准确地识别和定位出现的物体。然而,传统的物体检测器通常具有复杂的结构和大量的参数,导致它们在实时应用或资源受限的环境中效率不高。 为了解决这个问题,Pruned-YOLO采用了种名为模型修剪的技术。模型修剪是种通过删除不必要的参数来减小模型大小和计算量的方法。在Pruned-YOLO中,首先训练个原始的YOLO模型,在这个模型中包含了大量的参数。然后,通过对这个模型进行剪枝操作,删除冗余的参数,从而得到个修剪后的模型。 模型修剪的关键是确定哪些参数可以被安全地删除。在Pruned-YOLO中,采用了种称为敏感度分析的方法来评估参数对于模型性能的重要性。通过计算每个参数对于模型损失函数的梯度,可以确定其敏感度。如果某个参数的敏感度较低,即梯度接近于零,那么这个参数可以被删除而不会对模型性能产生显著影响。 通过对YOLO模型进行修剪,Pruned-YOLO可以显著减少模型的大小和计算需求,从而提高物体检测的效率。实验证明,Pruned-YOLO在保持较高检测准确率的同时,将模型大小和计算量减少了约50%。这使得Pruned-YOLO成为了种适用于边缘设备、嵌入式系统和实时应用的高效物体检测解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值