Shuyao "Tim" Xu Tim-Xu commited on
Commit
2129055
·
1 Parent(s): adfd76b

Introduce Preprocessing for Optimized Quantization in `quantize-ort.py` (#238)

Browse files

* Add preprocessing with optimization before quantization

* Clean up unintended changed

---------

Co-authored-by: Tim-Siu <[email protected]>

Files changed (1) hide show
  1. tools/quantize/quantize-ort.py +2 -1
tools/quantize/quantize-ort.py CHANGED
@@ -12,7 +12,7 @@ import cv2 as cv
12
  import onnx
13
  from onnx import version_converter
14
  import onnxruntime
15
- from onnxruntime.quantization import quantize_static, CalibrationDataReader, QuantType, QuantFormat
16
 
17
  from transform import Compose, Resize, CenterCrop, Normalize, ColorConvert, HandAlign
18
 
@@ -76,6 +76,7 @@ class Quantize:
76
  def run(self):
77
  print('Quantizing {}: act_type {}, wt_type {}'.format(self.model_path, self.act_type, self.wt_type))
78
  new_model_path = self.check_opset()
 
79
  output_name = '{}_{}.onnx'.format(self.model_path[:-5], self.wt_type)
80
  quantize_static(new_model_path, output_name, self.dr,
81
  quant_format=QuantFormat.QOperator, # start from onnxruntime==1.11.0, quant_format is set to QuantFormat.QDQ by default, which performs fake quantization
 
12
  import onnx
13
  from onnx import version_converter
14
  import onnxruntime
15
+ from onnxruntime.quantization import quantize_static, CalibrationDataReader, QuantType, QuantFormat, quant_pre_process
16
 
17
  from transform import Compose, Resize, CenterCrop, Normalize, ColorConvert, HandAlign
18
 
 
76
  def run(self):
77
  print('Quantizing {}: act_type {}, wt_type {}'.format(self.model_path, self.act_type, self.wt_type))
78
  new_model_path = self.check_opset()
79
+ quant_pre_process(new_model_path, new_model_path)
80
  output_name = '{}_{}.onnx'.format(self.model_path[:-5], self.wt_type)
81
  quantize_static(new_model_path, output_name, self.dr,
82
  quant_format=QuantFormat.QOperator, # start from onnxruntime==1.11.0, quant_format is set to QuantFormat.QDQ by default, which performs fake quantization