def quant_bias_bit_width(cls, module: QuantWBIOL): if module.bias is not None: bit_width = module.quant_bias_bit_width() return DPUQuantLayerHandler.validate_8b_bit_width(bit_width, le_then=True) else: return None
def validate(cls, module: QuantWBIOL, requires_quant_bias=True): assert module.is_weight_quant_enabled assert module.is_output_quant_enabled cls.validate_8b_bit_width(module.quant_weight_bit_width(), le_then=True) cls.validate_8b_bit_width(module.quant_input_bit_width()) cls.validate_8b_bit_width(module.quant_output_bit_width()) if module.bias is not None and requires_quant_bias: assert module.is_bias_quant_enabled assert module.is_quant_bias_signed cls.validate_32b_bit_width(module.quant_bias_bit_width(), le_then=True)
def maybe_quant_bias_type(module: QuantWBIOL): if module.is_bias_quant_enabled: return finn_datatype(module.quant_bias_bit_width(), module.is_quant_bias_signed) else: return None