torch.ao.nn.qat.dynamic.modules.linear 的源代码
从 typing 导入 Optional, TYPE_CHECKING, Union 导入 torch,如果 TYPE_CHECKING:从 torch.ao.quantization.qconfig 导入 QConfig # noqa: TC004 __all__ = ["Linear"]
[文档]类 Linear(torch.ao.nn.qat.Linear)
r"""
一个与 FakeQuantize 模块连接的线性模块,
用于动态量化感知训练。
我们采用与`torch.nn.Linear`相同的接口,请参阅
https://pytorch.org/docs/stable/nn.html#torch.nn.Linear
用于文档说明。
与 `torch.nn.Linear` 类似,FakeQuantize 模块已初始化为默认值。
默认。
"""
def __init__(
self,
in_features: int,
out_features: 整数,
bias: 布尔型 = True,
qconfig: Optional["QConfig"] = None,
device: Optional[Union[int, str, torch.device]] = None,
dtype: Optional[str] = None,
) -> None:
super().__init__(in_features, out_features, bias, qconfig, device, dtype)
if not torch.ao.quantization.qconfig._activation_is_memoryless(qconfig): # type: ignore[arg-type]
raise ValueError(
"动态 QAT 需要一个无记忆观察者。"
+ "这意味着一个平均常数等于 1 的移动平均观察者。"
)