我有一个量化模型,现在我想提取量化线性层的参数,并手动实现前向。我搜索源代码,但只找到这个函数。
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.ops.quantized.linear是如何定义的。
有人能给我一个后,量化线性的前向是如何定义的?
发布于 2022-08-25 19:27:29
在回答torch.ops.quantized.linear在哪里的问题时,我一直在寻找同样的东西,但始终没能找到。我相信它可能在aten (C++命名空间)的某个地方。然而,我确实在下面的NVIDIA TensorRT回购中找到了一些有用的基于PyTorch的实现。很有可能这些是PyTorch通过一些DLL实际调用的。如果您试图将量化添加到自定义层,这些实现将引导您完成它。
您可以找到医生来了和GitHub页面在这里。
具体而言,有关线性层,请参见QuantLinear层
在引擎盖下,这称为TensorQuantFunction.apply()用于训练后量化或FakeTensorQuantFunction.apply()用于量化感知训练.
https://stackoverflow.com/questions/72101712
复制相似问题