CatSnowdrop's picture
Upload 379 files
610d9c2 verified
Raw History Blame Contribute Delete
1.35 kB
from ..quant_utils import FLOAT8_TYPES
from .base_operator import QuantOperatorBase
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:
QuantOperatorBase.quantize(self)
return
# FP8 types are not supported for MaxPool; emit node unquantized.
if self.quantizer.activation_qType in FLOAT8_TYPES:
return QuantOperatorBase.quantize(self)
# 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
# FP8 types are not supported for MaxPool; leave node unquantized.
if self.quantizer.activation_qType in FLOAT8_TYPES:
return
# Direct 8bits op
return super().quantize()