mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-25 02:50:42 +00:00
* Suppose transpose by merge Reshape etc into direct xint8 operators. * Add resize operator quantization support * Add QDQ tests for resize, reshape, maxpool, transpose.
34 lines
931 B
Python
34 lines
931 B
Python
from .direct_q8 import Direct8BitOp, QDQDirect8BitOp
|
|
|
|
|
|
class QMaxPool(Direct8BitOp):
|
|
def __init__(self, onnx_quantizer, onnx_node):
|
|
super().__init__(onnx_quantizer, onnx_node)
|
|
|
|
def quantize(self):
|
|
node = self.node
|
|
assert (node.op_type == "MaxPool")
|
|
|
|
# if version is less than 12, go to normal quantize.
|
|
if self.quantizer.opset_version < 12:
|
|
super(Direct8BitOp, self).quantize()
|
|
return
|
|
|
|
# Direct 8bits op
|
|
return super().quantize()
|
|
|
|
|
|
class QDQMaxPool(QDQDirect8BitOp):
|
|
def __init__(self, onnx_quantizer, onnx_node):
|
|
super().__init__(onnx_quantizer, onnx_node)
|
|
|
|
def quantize(self):
|
|
node = self.node
|
|
assert (node.op_type == "MaxPool")
|
|
|
|
# if version is less than 12, just no change
|
|
if self.quantizer.opset_version < 12:
|
|
return
|
|
|
|
# Direct 8bits op
|
|
return super().quantize()
|