mindspore.nn.Conv2dBnWithoutFoldQuant
- class mindspore.nn.Conv2dBnWithoutFoldQuant(in_channels, out_channels, kernel_size, stride=1, pad_mode='same', padding=0, dilation=1, group=1, has_bias=False, eps=1e-05, momentum=0.997, weight_init='normal', bias_init='zeros', quant_config=quant_config_default, quant_dtype=QuantDtype.INT8)[source]
2D convolution and batchnorm without fold with fake quantized construct.
This part is a more detailed overview of Conv2d operation. For more details about Quantization, please refer to the implementation of class of FakeQuantWithMinMaxObserver,
mindspore.nn.FakeQuantWithMinMaxObserver
.where
is the continuous execution of quant and dequant, you can refer to the implementation of class of FakeQuantWithMinMaxObserver,mindspore.nn.FakeQuantWithMinMaxObserver
.- Parameters
in_channels (int) – The number of input channel
.out_channels (int) – The number of output channel
.kernel_size (Union[int, tuple[int]]) – Specifies the height and width of the 2D convolution window.
stride (Union[int, tuple[int]]) – Specifies stride for all spatial dimensions with the same value. Default: 1.
pad_mode (str) – Specifies padding mode. The optional values are “same”, “valid”, “pad”. Default: “same”.
padding (Union[int, tuple[int]]) – Implicit paddings on both sides of the x. Default: 0.
dilation (Union[int, tuple[int]]) – Specifies the dilation rate to use for dilated convolution. Default: 1.
group (int) – Splits filter into groups, in_ channels and out_channels must be divisible by the number of groups. Default: 1.
has_bias (bool) – Specifies whether the layer uses a bias vector. Default: False.
eps (float) – Parameters for Batch Normalization. Default: 1e-5.
momentum (float) – Parameters for Batch Normalization op. Default: 0.997.
weight_init (Union[Tensor, str, Initializer, numbers.Number]) – Initializer for the convolution kernel. Default: ‘normal’.
bias_init (Union[Tensor, str, Initializer, numbers.Number]) – Initializer for the bias vector. Default: ‘zeros’.
quant_config (QuantConfig) – Configures the types of quant observer and quant settings of weight and activation. Note that, QuantConfig is a special namedtuple, which is designed for quantization and can be generated by
mindspore.compression.quant.create_quant_config()
method. Default: QuantConfig with both items set to defaultFakeQuantWithMinMaxObserver
.quant_dtype (QuantDtype) – Specifies the FakeQuant datatype. Default: QuantDtype.INT8.
- Inputs:
x (Tensor) - Tensor of shape
.
- Outputs:
Tensor of shape
.- Supported Platforms:
Ascend
GPU
- Raises
TypeError – If in_channels, out_channels or group is not an int.
TypeError – If kernel_size, stride, padding or dilation is neither an int nor a tuple.
TypeError – If has_bias is not a bool.
ValueError – If in_channels, out_channels, kernel_size, stride or dilation is less than 1.
ValueError – If padding is less than 0.
ValueError – If pad_mode is not one of ‘same’, ‘valid’, ‘pad’.
Examples
>>> import mindspore >>> from mindspore.compression import quant >>> from mindspore import Tensor >>> qconfig = quant.create_quant_config() >>> conv2d_no_bnfold = nn.Conv2dBnWithoutFoldQuant(1, 1, kernel_size=(2, 2), stride=(1, 1), pad_mode="valid", ... weight_init='ones', quant_config=qconfig) >>> x = Tensor(np.array([[[[1, 0, 3], [1, 4, 7], [2, 5, 2]]]]), mindspore.float32) >>> result = conv2d_no_bnfold(x) >>> print(result) [[[[5.929658 13.835868] [11.859316 17.78116]]]]