onnx模型的量化处理

默认是uint8量化,需要安装onnx 1.8或以上版本。

目前在ubuntu 20.04下测试通过 

#Dynamic quantization  动态量化
import onnx
from onnxruntime.quantization import quantize_dynamic, QuantType

model_fp32 = 'path/to/the/model.onnx'
model_quant = 'path/to/the/model.quant.onnx'
quantized_model = quantize_dynamic(model_fp32, model_quant, weight_type=QuantType.QUInt8)


--------------------------
# QAT quantization  QAT量化
import onnx
from onnxruntime.quantization import quantize_qat, QuantType

model_fp32 = 'path/to/the/model.onnx'
model_quant = 'path/to/the/model.quant.onnx'
quantized_model = quantize_qat(model_fp32, model_quant)

量化后使用同fp32时一样的代码进行推理,无需修改。

还有一种方法是静态量化,需要用少量数据对模型进行校准。可以参见 以下链接。

其它文章中关于静态量化时校准的信息: 模型量化(3):ONNX 模型的静态量化和动态量化_AI Studio的博客-CSDN博客_onnx模型量化

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
ONNX模型量化是指将已经训练好的ONNX模型进行压缩和优化,以降低模型的存储空间和计算资源需求,同时保持模型的精度和性能。量化可以通过减少浮点数的位数来实现,例如将浮点数转换为整数或低精度浮点数。 根据引用,可以使用基于Python的TensorRT库进行ONNX模型量化。TensorRT是英伟达推出的用于高性能深度学习推理的库,它支持使用INT8量化技术对ONNX模型进行压缩和加速。 具体步骤如下: 1. 下载并解压缩ONNX模型文件。 2. 使用TensorRT的量化工具,将ONNX模型转换为INT8量化格式。 3. 保存量化后的ONNX模型。 引用中提供了一个使用PaddlePaddle框架和Paddle2ONNX工具进行ONNX模型量化的示例。在示例中,先下载并解压缩MobileNetV1模型文件,然后使用Paddle2ONNX工具将模型转换为ONNX格式,并指定opset_version为12,最后实现动态量化。 综上所述,ONNX模型量化是通过压缩和优化已经训练好的ONNX模型,以降低存储空间和计算资源需求的技术。可以使用TensorRT等库和工具来实现ONNX模型量化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ONNX模型优化与量化细节](https://blog.csdn.net/sunny0660/article/details/120405998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [基于python的tensorrt int8 量化yolov5 onnx模型实现](https://download.csdn.net/download/weixin_42848583/85041103)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [模型量化(3):ONNX 模型的静态量化和动态量化](https://blog.csdn.net/m0_63642362/article/details/124741589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值