pytorch如何实现量化线性层的前向?

np8igboo  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(144)

我在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 。操作。量化。线性是定义。
谁能给给予我一个后量子化线性的正演是如何定义的?

kb5ga3dv

kb5ga3dv1#

在回答torch.ops.quantized.linear在哪里的问题时,我一直在寻找同样的东西,但从未找到。我相信它可能在aten(C++命名空间)的某个地方。然而,我确实在下面的NVIDIA TensorRT repo中找到了一些有用的基于PyTorch的实现。很可能这些是PyTorch通过一些DLL实际调用的。如果你想给一个自定义层添加量化,这些实现可以引导你完成它。
你可以找到docs hereGitHub page here
对于线性图层,请参见此处的QuantLinear图层
在后台,它调用TensorQuantFunction.apply()进行训练后量化,或调用FakeTensorQuantFunction.apply()进行量化感知训练。

相关问题