PyTorch モデルの量子化を有効にするには、次の条件を確実に満たすようにモデルの定義を変更する必要があります。Vitis AI GitHub に例が用意されています。
- 量子化するモデルには、forward メソッドのみを含める必要があります。その他すべての関数 (通常、前処理や後処理を実行するもの) はモデルの外部に移動させるか派生クラスに配置する必要があります。これらの関数は API によって量子化されたモジュール内で削除されるため、このようにしておかないと、量子化済みモジュールの転送時に予期しない動作が生じる可能性があります。
- 浮動小数点モデルは、JIT トレース テストに合格する必要があります。浮動小数点モジュールを評価ステータスに設定し、
torch.jit.trace
関数を使用して浮動小数点モデルをテストします。詳細は、example/jupyter_notebook/jit_trace_test/jit_trace_test.ipynb を参照してください。