def __init__(self, kernel_size: int, stride: int = None, signed: bool = True, min_overall_bit_width: Optional[int] = 2, max_overall_bit_width: Optional[int] = 32, quant_type: QuantType = QuantType.FP, lsb_trunc_bit_width_impl_type=BitWidthImplType.CONST): QuantLayer.__init__(self, compute_output_scale=True, compute_output_bit_width=True, return_quant_tensor=True) AvgPool2d.__init__(self, kernel_size=kernel_size, stride=stride) ls_bit_width_to_trunc = math.ceil(math.log2(kernel_size * kernel_size)) self.signed = signed self.quant_type = quant_type explicit_rescaling = True # we are explicitly rescaling as we are replacing the div in avg with trunc self.accumulator_quant = TruncQuantProxy( signed=signed, quant_type=quant_type, trunc_at_least_init_val=True, ls_bit_width_to_trunc=ls_bit_width_to_trunc, min_overall_bit_width=min_overall_bit_width, max_overall_bit_width=max_overall_bit_width, lsb_trunc_bit_width_impl_type=lsb_trunc_bit_width_impl_type, explicit_rescaling=explicit_rescaling, override_pretrained_bit_width=False)
def __init__(self, kernel_size: Union[int, Tuple[int, int]], stride: Union[int, Tuple[int, int]] = None, trunc_quant: Optional[AccQuantType] = TruncTo8bit, return_quant_tensor: bool = True, **kwargs): AvgPool2d.__init__(self, kernel_size=kernel_size, stride=stride) QuantLayerMixin.__init__(self, return_quant_tensor) QuantTruncMixin.__init__(self, trunc_quant=trunc_quant, **kwargs)
def __init__(self, kernel_size: Union[int, Tuple[int, int]], stride: Union[int, Tuple[int, int]] = None, trunc_quant: Union[AccQuantProxyProtocol, Type[Injector]] = TruncTo8bit, return_quant_tensor: bool = True, update_injector: Callable = update_trunc_quant_injector, **kwargs): AvgPool2d.__init__(self, kernel_size=kernel_size, stride=stride) QuantLayerMixin.__init__(self, return_quant_tensor) QuantTruncMixin.__init__(self, trunc_quant=trunc_quant, update_injector=update_injector, **kwargs)
def __init__(self, kernel_size: int, stride: int = None, trunc_quant: Union[AccQuantProxyProtocol, Type[Injector]] = DefaultTruncQI, return_quant_tensor: bool = True, update_injector: Callable = update_trunc_quant_injector, **kwargs): AvgPool2d.__init__(self, kernel_size=kernel_size, stride=stride) QuantLayerMixin.__init__(self, return_quant_tensor) QuantTruncMixin.__init__(self, trunc_quant=trunc_quant, update_injector=update_injector, ls_bit_width_to_trunc=math.ceil( math.log2(kernel_size * kernel_size)), **kwargs)