基于pytorch的模型剪枝+模型量化+BN合并+TRT部署(cifar数据)(2)

该博客详细介绍了如何基于PyTorch进行模型压缩,包括量化(High-Bit和Low-Bit)、剪枝(稀疏训练和微调)、BN融合以及在TensorRT上的部署。实验涉及多种量化位数和剪枝率的组合,以达到最佳性能和效率。还探讨了量化训练和推理、以及不同模型结构的压缩效果。
摘要由CSDN通过智能技术生成

1)量化:High-Bit(>2b): QAT, PTQ, QAFT; Low-Bit(≤2b)/Ternary and Binary: QAT
2)剪枝:正常、规整和分组卷积结构剪枝
3)针对特征(A)二值量化的BN融合(训练量化后,BN参数 —> conv的偏置b)
4)High-Bit量化的BN融合(训练量化中,先融合再量化,融合:BN参数 —> conv的权重w和偏置b)
对比实验如下,相关代码下载地址:下载地址

类型 W(Bits) A(Bits) Acc GFLOPs Para(M) Size(MB) 压缩率 损失
原模型(nin) FP32 FP32
PyTorch是一个很强大的深度学习框架,可以用于建立和训练各种神经网络模型模型剪枝是一种技术,在不显著损失模型性能的情况下,减少模型的大小和计算需求。 PyTorch提供了一些工具和方法来进行模型剪枝。一种常见的方法是通过稀疏化权重来减少模型的大小。稀疏化意味着将一些权重设置为零,只保留模型中最重要的权重。这可以通过使用PyTorch提供的稀疏张量来实现。稀疏张量可以节省内存和计算资源。 另一种模型剪枝的方法是通过结构化剪枝。这种方法通过删除模型中的一些结构来减少模型的大小。例如,可以删除一些神经元或层,或者可以缩减模型的宽度或深度。这可以通过修改模型的架构来实现。 PyTorch还提供了一种称为剪枝线性回归(Pruning Linear Regression)的方法。使用这种方法,可以根据权重的梯度选择要剪枝的权重。该方法通过迭代把梯度为零的权重设置为零来实现。 在PyTorch中执行模型剪枝的一般步骤包括加载已经训练好的模型,确定要剪枝的方法和参数,然后使用合适的方法对模型进行剪枝剪枝后,可以使用一些性能度量来评估剪枝模型的性能。如果性能满足要求,剪枝后的模型可以保存和使用。否则,可以进一步调整剪枝参数或方法,进行迭代剪枝。 总之,通过PyTorch可以方便地实现模型剪枝。使用模型剪枝可以减少模型的大小和计算需求,提高模型的运行效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踟蹰横渡口,彳亍上滩舟。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值