模型压缩那些事(二)

本文探讨了深度学习模型压缩的两个主要方法:Pruning和Quantization。Pruning通过移除权重较小的值来减小模型大小,分为非结构化和结构化两种形式。Quantization则是将浮点数量化为低比特整数,以达到压缩和加速的目的。文中详细介绍了Deep Compression、Dynamic Network Surgery以及Structured Sparsity Learning等技术,并讨论了它们在实际应用中的挑战和局限性。
摘要由CSDN通过智能技术生成

今天扯扯如何减少模型所占的空间。

我认为压缩这块可以简单分为两部分分别是Pruning和Quantization,Pruning的思想是将卷积层和全连接层中的权重较小的值去掉,然后finetune恢复精度,Quantization是指将32位的浮点数量化成低比特的整数从而达到压缩和加速的目的,下面分别来说这两部分:

Pruning这块我主要试了两大类,分别是non-structured sparsity和structured sparsity两种,我在实现的时候都是加入一个mask,其大小和卷积层参数的大小相同,如果该位置的权重保留则为1,否则为0。

non-structured sparsity是指卷积层为剪枝后的权重的位置是随机的,不规律的,这部分我主要尝试了Deep Compression[1]和其改进版本Dynamic network surgery[2],Deep Compression中的Pruning很简单,计算每个卷积层中所有权重的L1 norn,然后排序,根据预先设置的稀疏度将L1 norm 较小的值去掉,然后finetune回复精度,作者论文中说可以做到无精度损失,而我在实验中发现如果想要达到无精度损失要满足较小的卷积层稀疏度和较大的全连接层稀疏度,还要注意的是finetune时卷积层和全连接层需要分开,即先固定全连接层finetune卷积层,然后在估计卷积层finetune全连接层,这样导致算法finetune时间极长,虽然能达到压缩模型参数的目的,但是没有达到加速网络的效果。

然后我又实验了Dynamic network surgery,该算法简而言之是对Deep Compression的改进,其思想是在finetune的初始阶段不断的改变mask中的值,我的理解是Deep Compres

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值