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

torch.ao.nn.intrinsic.quantized.dynamic.modules.linear_relu 的源代码

# mypy: 允许未类型化定义
导入 火炬
导入 torch.ao.nn.intrinsic 作为 nni
导入 torch.ao.nn.quantized.dynamic 作为 nnqd


__all__ = [LinearReLU]


[文档] 线性 ReLU(氮气.线性): r"" 由线性模块和 ReLU 模块融合而成的线性 ReLU 模块,可用于动态量化 支持同时使用 FP16 和 INT8 量化。 我们采用与 :class:`torch.ao.nn.quantized.dynamic.Linear` 相同的接口。 属性: 与 torch.ao.nn.quantized.dynamic.Linear 相同。 示例: >>> # xdoctest: +SKIP >>> m = nn.intrinsic.quantized.dynamic.LinearReLU(20, 30) >>> input = torch.randn(128, 20) >>> output = m(input) >>> 打印(output.size()) torch.Size([128, 30]) ```python # 假设输入文本为: input_text = '"""' # 翻译函数(此处仅为示例,实际翻译功能需要调用真实的翻译 API) def translate_to_simplified_chinese(text): # 这里应该调用真实的翻译 API 进行翻译 # 由于示例中不使用真实的 API,以下为模拟翻译结果 return text # 输出翻译结果 translated_text = translate_to_simplified_chinese(input_text) print(translated_text) ``` 浮点模块 = nni.线性 ReLU # 类型:忽略[赋值] 定义 初始化(自身, 输入特征, 输出特征, 偏置=True, 数据类型=火炬.qint8): 超级().初始化(输入特征, 输出特征, 偏置, 数据类型) 定义 前向(自身, x: 火炬.张量) -> 火炬.张量: 如果 自身._packed_params.dtype == 火炬.qint8: # TODO 检查此处是否应默认设置 reduce_rage = True Y = 火炬.操作.量化.线性 ReLU 动态( x, 自身._packed_params._packed_params, 范围缩减=真实 ) elif 自身._packed_params.dtype == 火炬.float16: Y = 火炬.操作.量化.线性 ReLU 动态 fp16( x, 自身._packed_params._packed_params ) 否则: 抛出异常 运行时错误("不支持动态量化线性 ReLU 的数据类型!") 返回 Y.(x.数据类型) 定义 _获取名称(自身): 返回 动态量化线性 ReLU @classmethod 定义 从浮点数(, mod, 使用预计算的假量化=错误): 返回 超级().从浮点数( mod, 使用预计算的假量化=使用预计算的假量化 ) @classmethod 定义 来自参考(, ref_qlinear_relu): 返回 超级().来自参考(ref_qlinear_relu[0])

© 版权所有 PyTorch 贡献者。

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

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源