import onnx
import onnxruntime
import cv2
model_file = "./a_.onnx"
#加载模型
model = onnx.load(model_file)
# 创建一个量化转换器
converter = onnxruntime.quantization.QuantizationConverter(model, quant_format=onnxruntime.quantization.QuantFormat.QLINEAR)
# 进行静态量化
quantized_model = converter.convert()
# 保存量化后的模型
onnx.save(quantized_model, 'quantized_model.onnx')
这个代码 一直在报错,no module named quantization。。。 找了很多种方法,没有一个说到点子上的。
一度认为是conda出了错误,由于是在服务器上,看代码debug不是很方便,一直以为是安装版本的问题,后面发现 quantization这个函数,包括其下面的函数,都不能这么调用。(之前的人都是这么用的?)
找到源代码进行修改:
import onnx
import onnxruntime
from onnxruntime.quantization import quantize_static
from onnxruntime.quantization.quant_utils import QuantType, QuantFormat
import cv2
model_file = "./a_an.onnx"
#加载模型
model = onnx.load(model_file)
# 创建一个量化转换器
onnxruntime.quantization.quantize_dynamic(model_file, "./out_qu.onnx")
# 进行静态量化
#quantized_model = converter.convert()
# 保存量化后的模型
#onnx.save(quantized_model, 'quantized_model.onnx')