【问题标题】:Quantization of Onnx modelOnnx模型的量化
【发布时间】:2019-12-11 12:10:43
【问题描述】:

我正在尝试使用 onnxruntime quantization tool 量化 ONNX 模型。

我的量化代码如下:

import onnx
from quantize import quantize, QuantizationMode

# Load the onnx model     
model = onnx.load('3ddfa_optimized_withoutflatten.onnx')

# Quantize
quantized_model = quantize(model, quantization_mode=QuantizationMode.IntegerOps)
 
# Save the quantized model
onnx.save(quantized_model, 'quantized_model.onnx')

使用这种方法后,我得到的模型是 0 维模型。我必须在 quantize 函数中传递什么参数才能获得合适的模型?

【问题讨论】:

    标签: python deep-learning quantization onnx onnxruntime


    【解决方案1】:

    除非你共享 onnx 模型,否则很难说出原因。

    对于 OnnxRuntime 1.4.0,您可以尝试以下操作:

        quantized_model = quantize(onnx_opt_model,
                                   quantization_mode=QuantizationMode.IntegerOps,
                                   symmetric_weight=True,
                                   force_fusions=True)
    

    如果问题仍然存在,请分享您的 onnx 模型,以便我们查看。

    【讨论】:

      【解决方案2】:

      试试这个:

      def quantize_onnx_model(onnx_model_path, quantized_model_path):
          from onnxruntime.quantization import quantize_dynamic, QuantType
          import onnx
          onnx_opt_model = onnx.load(onnx_model_path)
          quantize_dynamic(onnx_model_path,
                           quantized_model_path,
                           weight_type=QuantType.QInt8)
      
          print(f"quantized model saved to:{quantized_model_path}")
      
      quantize_onnx_model("/content/drive/MyDrive/Datasets/model.onnx", "/content/drive/MyDrive/Datasets/model_quant.onnx")
      

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多