pytorch量化方法评估

对自己接触的pytorch模型量化方法做一个简单评估,欢迎补充指正。

pytorch1.4版本之后自带的量化工具

pytorch在1.4版本之后就添加了量化的功能。具体量化方案可以参见这篇官方的教程。
(EXPERIMENTAL) STATIC QUANTIZATION WITH EAGER MODE IN PYTORCH

优点

  • 毕竟是官方自己放出来的,实现简单,要量化自己的模型只需要改几行代码就可以实现;
  • 适用于想了解量化功能的初学者(?我自己好像也只是初学者),想对图像分类模型进行量化的。

缺点

  • 目前只能在CPU下进行,量化后评估也只能在CPU下进行;
  • 量化后对每层权重会增加很多奇怪的参数,导致一些error,比如我在量化自己YOLO模型的时候没办法加载权重,就只能看看量化后的权重是什么样子,没办法进行量化后的推理。

distiller 提供的量化工具

Intel开源的神经网络压缩框架distiller也提供了量化工具,包括训练后量化和量化感知训练。具体细节可参见distiller官方文档:
Distiller Documentation

优点

  • 量化后可以进行推理,对量化后对精度性能影响进行评估;

缺点

  • distiller 安装以及使用需要一个入门的过程,包括改代码和定义量化schedule都相对麻烦一些;
  • 量化后的模型也就只能看看精度,推理速度会变慢,官方自己的说法是权重虽然看起来被量化到int8(比如),但存储的时候依然是按照fp64存储的,没办法进行实际应用。

总之我还没有找到完美的量化工具对我的YOLO模型做量化,欢迎大佬们提建议。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
PyTorch LSTM 量化是一种将长短期记忆神经网络模型进行压缩和优化的方法量化是为了减少模型参数的位数,提高模型的计算效率和减少内存占用。以下是一些关键步骤和操作: 1. 模型准备:首先,将PyTorch LSTM模型训练完毕后,需要导出模型权重和偏置参数。接下来,使用模型的转换工具对权重和偏置参数进行量化操作。 2. 量化算法选择:目前,常用的量化算法有权重共享和权重量化两种方式。权重共享是将权重参数共享到若干个量化数值中,可以显著减少模型的计算量。权重量化是将权重参数用较少的位数表示,例如使用二进制数等,以减少内存占用和计算时间。 3. 模型压缩:根据选择的量化算法,对权重和偏置参数进行相应的压缩操作。例如,使用二进制数表示权重参数,并将参数按照一定的规则映射到较少的比特位数。 4. 精度损失衡量:对于量化后的模型,需要评估模型的精度损失情况。可以使用测试数据集进行模型评估,检查量化后的模型是否仍然具备较高的预测准确性。 5. 后续优化:如果量化后的模型精度损失较大,可以考虑进一步优化。例如,可以使用一些优化算法进行重新训练,如微调、剪枝和蒸馏等。 总结来说,PyTorch LSTM 量化是对模型参数进行压缩和优化的方法,通过选择合适的量化算法和进行相应的压缩操作,可以减小模型的计算量和内存占用,提高模型的效率。然而,需要注意保持模型的预测准确性,如果量化后的模型精度损失较大,可以进一步考虑优化的方法

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值