• 文档 >
  • 模块代码 >
  • torch >
  • torch.ao.nn.intrinsic.qat.modules.linear_relu
快捷键

torch.ao.nn.intrinsic.qat.modules.linear_relu 的源代码

# mypy: 允许未类型化定义
导入 火炬
导入 torch.ao.nn.intrinsic 作为 nni
导入 torch.ao.nn.qat 作为 nnqat
导入 torch.nn.functional 作为 F


[文档]class LinearReLU(nnqat.Linear, nni._FusedModule): r""" 一个由线性模块和 ReLU 模块融合而成的线性 ReLU 模块,附加 权重使用的 FakeQuantize 模块 量化感知训练。 我们采用与 :class:`torch.nn.Linear` 相同的接口。 与 `torch.ao.nn.intrinsic.LinearReLU` 类似,FakeQuantize 模块已初始化为。 默认。 属性: 重量:权重伪量化模块 示例:: >>> # xdoctest: +SKIP >>> m = nn.qat.LinearReLU(20, 30) >>> input = torch.randn(128, 20) >>> output = m(input) >>> print(output.size()) torch.Size([128, 30]) """ _FLOAT_MODULE = nni.LinearReLU # type: ignore[assignment] def __init__(self, in_features, out_features, bias=True, qconfig=None): super().__init__(in_features, out_features, bias, qconfig) def forward(self, input): return F.relu(F.linear(input, self.weight_fake_quant(self.weight), self.bias)) @classmethod def from_float(cls, mod, use_precomputed_fake_quant=False): return super().from_float(mod, use_precomputed_fake_quant) def to_float(self): linear = torch.nn.Linear( self.in_features, self.out_features, self.bias 是否为 None ) linear.weight = torch.nn.Parameter(self.weight.detach()) if self.bias 不是 None: linear.bias = torch.nn.Parameter(self.bias.detach()) relu = torch.nn.ReLU() return torch.ao.nn.intrinsic.LinearReLU(linear, relu)

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源,获取您的疑问解答

查看资源