MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / __init__

Method __init__

python/paddle/nn/quant/quant_layers.py:553–613  ·  view source on GitHub ↗
(
        self,
        layer: Layer,
        weight_bits: int = 8,
        activation_bits: int = 8,
        moving_rate: float = 0.9,
        weight_quantize_type: _QuantType = 'abs_max',
        activation_quantize_type: _QuantType = 'abs_max',
        weight_pre_layer: Layer | None = None,
        act_pre_layer: Layer | None = None,
        weight_quant_layer: Layer | None = None,
        act_quant_layer: Layer | None = None,
    )

Source from the content-addressed store, hash-verified

551 bias: Tensor
552
553 def __init__(
554 self,
555 layer: Layer,
556 weight_bits: int = 8,
557 activation_bits: int = 8,
558 moving_rate: float = 0.9,
559 weight_quantize_type: _QuantType = 'abs_max',
560 activation_quantize_type: _QuantType = 'abs_max',
561 weight_pre_layer: Layer | None = None,
562 act_pre_layer: Layer | None = None,
563 weight_quant_layer: Layer | None = None,
564 act_quant_layer: Layer | None = None,
565 ) -> None:
566 super().__init__()
567 # For Conv2D
568 self._groups = layer._groups
569 self._stride = layer._stride
570 self._padding = layer._padding
571 self._padding_mode = layer._padding_mode
572 if self._padding_mode != 'zeros':
573 self._reversed_padding_repeated_twice = (
574 layer._reversed_padding_repeated_twice
575 )
576 self._dilation = layer._dilation
577 self._data_format = layer._data_format
578 self.weight = layer.weight
579 self.bias = layer.bias
580
581 # For FakeQuant
582 self._conv2d_quant_axis = 0
583 if weight_quant_layer is not None:
584 self._fake_quant_weight = weight_quant_layer()
585 else:
586 self._fake_quant_weight = _get_fake_quant_type(
587 weight_quantize_type,
588 name=self.weight.name,
589 moving_rate=moving_rate,
590 quant_bits=weight_bits,
591 dtype=self._dtype,
592 quant_on_weight=True,
593 channel_num=self.weight.shape[self._conv2d_quant_axis],
594 quant_axis=self._conv2d_quant_axis,
595 )
596 if act_quant_layer is not None:
597 self._fake_quant_input = act_quant_layer()
598 else:
599 self._fake_quant_input = _get_fake_quant_type(
600 activation_quantize_type,
601 name=layer.full_name(),
602 moving_rate=moving_rate,
603 quant_bits=activation_bits,
604 dtype=self._dtype,
605 quant_on_weight=False,
606 )
607
608 self._act_preprocess = (
609 act_pre_layer() if act_pre_layer is not None else None
610 )

Callers

nothing calls this directly

Calls 3

_get_fake_quant_typeFunction · 0.85
full_nameMethod · 0.80
__init__Method · 0.45

Tested by

no test coverage detected