3 个月前

基于内蒸馏的背包剪枝

基于内蒸馏的背包剪枝

摘要

神经网络剪枝通过降低过参数化网络的计算开销,从而提升其运行效率。现有主流方法包括基于ℓ₁范数的稀疏化策略以及神经架构搜索(Neural Architecture Search, NAS)等。本文提出一种新型剪枝方法,该方法在优化剪枝后网络最终准确率的同时,还能够从过参数化父网络的内部层中提取知识进行蒸馏。为实现这一目标,我们将网络剪枝建模为一个背包问题(Knapsack Problem),以在神经元的重要性与其对应的计算成本之间实现最优权衡。在此框架下,我们对网络通道进行剪枝,同时保留网络的高层结构。随后,利用父网络内部知识对剪枝后的网络进行监督微调,这一技术我们称为内部知识蒸馏(Inner Knowledge Distillation)。实验结果表明,该方法在ImageNet、CIFAR-10和CIFAR-100数据集上,基于ResNet骨干网络,均取得了当前最优的剪枝性能。针对包含跳跃连接(skip-links)和深度可分离卷积(depth-wise convolutions)等复杂网络结构的剪枝任务,我们进一步提出一种块分组剪枝策略(block grouping approach),有效应对此类结构的剪枝挑战。基于该方法,我们构建出结构紧凑的模型,其浮点运算量(FLOPs)与EfficientNet-B0和MobileNetV3相当,但在ImageNet上的准确率分别提升了1%和0.3%,同时在GPU上具备更优的运行速度。

代码仓库

yoniaflalo/knapsack_pruning
官方
pytorch
GitHub 中提及

基准测试

基准方法指标
network-pruning-on-imagenetResNet50 2.0 GFLOPS
Accuracy: 77.70
GFLOPs: 2
network-pruning-on-imagenetResNet50 2.5 GFLOPS
Accuracy: 78.0
GFLOPs: 2.5

用 AI 构建 AI

从想法到上线——通过免费 AI 协同编程、开箱即用的环境和市场最优价格的 GPU 加速您的 AI 开发

AI 协同编程
即用型 GPU
最优价格
立即开始

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
基于内蒸馏的背包剪枝 | 论文 | HyperAI超神经