2

我正在尝试使用 onnxruntime量化工具来量化 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 函数中传递什么参数才能获得合适的模型?

4

2 回答 2

2

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

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

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

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

于 2020-09-21T05:46:33.120 回答
0

尝试这个:

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")
于 2021-12-13T07:41:36.140 回答