我在pytorch中有一个量化模型,现在我想提取量化线性层的参数并手动实现向前。我搜索了源代码,但只找到了这个函数。
def forward(self, x: torch.Tensor) -> torch.Tensor:
return torch.ops.quantized.linear(
x, self._packed_params._packed_params, self.scale, self.zero_point)
但没有在哪里我可以找到如何 Torch 。操作。量化。线性是定义。
谁能给给予我一个后量子化线性的正演是如何定义的?
1条答案
按热度按时间kb5ga3dv1#
在回答
torch.ops.quantized.linear
在哪里的问题时,我一直在寻找同样的东西,但从未找到。我相信它可能在aten
(C++命名空间)的某个地方。然而,我确实在下面的NVIDIA TensorRT repo中找到了一些有用的基于PyTorch的实现。很可能这些是PyTorch通过一些DLL实际调用的。如果你想给一个自定义层添加量化,这些实现可以引导你完成它。你可以找到docs here和GitHub page here。
对于线性图层,请参见此处的QuantLinear图层
在后台,它调用TensorQuantFunction.apply()进行训练后量化,或调用FakeTensorQuantFunction.apply()进行量化感知训练。