评价此页

LinearBn1d#

class torch.ao.nn.intrinsic.qat.modules.linear_fused.LinearBn1d(in_features, out_features, bias=True, eps=1e-05, momentum=0.1, freeze_bn=False, qconfig=None)[source]#

LinearBn1d 模块是一个由 Linear 和 BatchNorm1d 融合而成的模块,附带有用于权重的 FakeQuantize 模块,用于量化感知训练 (Quantization Aware Training)。

我们结合了 torch.nn.Linear 和 :class:torch.nn.BatchNorm1d` 的接口。

torch.nn.Linear 类似,其中的 FakeQuantize 模块已初始化为默认值。

变量:
  • freeze_bn

  • weight_fake_quant – 权重的 fake quant 模块

classmethod from_float(mod, use_precomputed_fake_quant=False)[source]#

从浮点模块或 qparams_dict 创建 qat 模块

参数:

mod – 一个浮点模块,由 torch.ao.quantization 工具生成,或直接由用户提供。

train(mode=True)[source]#

BatchNorm 的训练行为使用 self.training 标志。如果 BN 被冻结,则禁止更改此标志。这确保了在冻结 BN 的模型上调用 model.train() 时能够表现正常。