horizon_plugin_pytorch 目前支持采用 eager 模式进行量化,但是,我们已经不推荐再使用该模式。 Eager 模式的整体流程同样参考了 PyTorch 官方的量化接口和思路,因此,建议您先阅读 PyTorch 官方文档中 Eager 模式相关部分。
在 horizon_plugin_pytorch 中使用 eager 模式,和 fx 模式的主要区别在于:
原始的浮点算子 | 需要替换的算子 |
torch.nn.functional.relu | torch.nn.ReLU() |
a + b / torch.add | horizon.nn.quantized.FloatFunctional().add |
Tensor.exp | horizon.nn.Exp() |
torch.nn.functional.interpolate | horizon.nn.Interpolate() |
fuser_func
。如下所示: