要为 PyTorch 模型启用量化,需要修改模型定义以确保其满足以下条件。Vitis AI GitHub 提供了一个示例。
- 用于量化的模型只能包含前传方法。所有其他函数(通常用作预处理和后处理运算)都应移至模型之外或置于派生类中。否则在前传量化模块时可能会出现意外行为,因为 API 会移除量化模块中的这些函数。
- 这样此浮点模型应可通过 JIT 追踪测试。将浮点模块设置为评估状态,然后使用
torch.jit.trace
函数来测试浮点模型。欲知详情,请参阅 example/jupyter_notebook/jit_trace_test/jit_trace_test.ipynb。