megengine.module.qat package

megengine.module.qat.concat

class megengine.module.qat.concat.Concat[源代码]

基类:megengine.module.concat.Concat, megengine.module.qat.module.QATModule

支持QAT,实现concat函数计算的 QATModule 。可搭配使用 ObserverFakeQuantize

forward(inps, axis=0)[源代码]
classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

megengine.module.qat.conv

class megengine.module.qat.conv.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, conv_mode='CROSS_CORRELATION', compute_mode='DEFAULT')[源代码]

基类:megengine.module.conv.Conv2d, megengine.module.qat.module.QATModule

支持QAT的 QATModule 版本Conv2d。可搭配使用 ObserverFakeQuantize

calc_conv_qat(inp)[源代码]
forward(inp)[源代码]
classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

class megengine.module.qat.conv.ConvRelu2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, conv_mode='CROSS_CORRELATION', compute_mode='DEFAULT')[源代码]

基类:megengine.module.qat.conv.Conv2d

支持QAT的包含Conv2d与Relu的 QATModule 。可搭配使用 ObserverFakeQuantize

forward(inp)[源代码]

megengine.module.qat.conv_bn

class megengine.module.qat.conv_bn.ConvBn2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, conv_mode='CROSS_CORRELATION', compute_mode='DEFAULT', eps=1e-05, momentum=0.9, affine=True, track_running_stats=True)[源代码]

基类:megengine.module.qat.conv_bn._ConvBnActivation2d

支持QAT并融合Conv2d和BatchNorm2d的 QATModule 。可搭配使用 ObserverFakeQuantize

forward(inp)[源代码]
class megengine.module.qat.conv_bn.ConvBnRelu2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, conv_mode='CROSS_CORRELATION', compute_mode='DEFAULT', eps=1e-05, momentum=0.9, affine=True, track_running_stats=True)[源代码]

基类:megengine.module.qat.conv_bn._ConvBnActivation2d

支持QAT并融合Conv2d,BatchNorm2d和relu的 QATModule 。可搭配使用 ObserverFakeQuantize

forward(inp)[源代码]

megengine.module.qat.elemwise

class megengine.module.qat.elemwise.Elemwise(method)[源代码]

基类:megengine.module.elemwise.Elemwise, megengine.module.qat.module.QATModule

支持QAT,具有elemwise算子功能的 QATModule 。可搭配使用 ObserverFakeQuantize

参数

method – elemwise方法,可参考 Elemwise 获取详情。

forward(*inps)[源代码]
classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

with_weight = False

megengine.module.qat.linear

class megengine.module.qat.linear.Linear(in_features, out_features, bias=True, **kwargs)[源代码]

基类:megengine.module.linear.Linear, megengine.module.qat.module.QATModule

QATModuleLinear 。可搭配使用 ObserverFakeQuantize

参数
  • in_features (int) – 各输入样本的大小。

  • out_features (int) – 各输出样本的大小。

  • bias (bool) – 若为 False , 该层不添加偏置。默认:True

forward(x)[源代码]
classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

megengine.module.qat.module

class megengine.module.qat.module.QATModule[源代码]

基类:megengine.module.module.Module

浮点数量化相关模块的基类。主要用于 QAT 和 Calibration 。

使用 from_float_module() 从浮点数型 Module 中生成实例。或使用 quantize_qat() 来自动递归进行此操作。

可之后使用 quantize() 将该模块转为 QuantizedModule 用于部署。

apply_quant_activation(target)[源代码]

target 上根据 qconfig 应用权重observer以及fake_quant。

apply_quant_weight(target)[源代码]

target 上根据 qconfig 应用权重observer以及fake_quant。

abstract classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

get_activation_dtype()[源代码]

按照qconfig指定的方法,从 qconfig 中获取激活值的量化数据类型。

get_activation_qparams()[源代码]

获取激活值的量化参数。

get_weight_dtype()[源代码]

qconfig 中获取权重的量化数据类型。

get_weight_qparams()[源代码]

获取权重的量化参数。

set_fake_quant(enable)[源代码]
set_observer(enable)[源代码]
set_qconfig(qconfig)[源代码]

使用 qconfig 更改量化相关配置。包含权重和激活值的 observer 和 fake_quant 。

with_act = True
with_weight = True

megengine.module.qat.quant_dequant

class megengine.module.qat.quant_dequant.DequantStub[源代码]

基类:megengine.module.quant_dequant.DequantStub, megengine.module.qat.module.QATModule

仅返回输入的辅助QATModule, 但在转换为 QuantizedModule 之后,会对输入进行反量化。

forward(inp)[源代码]
classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

with_act = False
with_weight = False
class megengine.module.qat.quant_dequant.QuantStub[源代码]

基类:megengine.module.quant_dequant.QuantStub, megengine.module.qat.module.QATModule

仅返回输入的辅助QATModule, 但在转换为 QuantizedModule 之后,会对输入进行量化。

forward(inp)[源代码]
classmethod from_float_module(float_module)[源代码]

返回从浮点型 Module 实例转换而来的 QATModule 实例。

with_weight = False