注記: vai_q_pytorch のログ メッセージは、特殊な色とユニークなキーワード接頭辞「VAI_Q_*」で識別されます。ログ メッセージの種類には、「error」、「warning」、「note」があります。vai_q_pytorch ログ メッセージの監視は、フロー ステータスの検証に重要です。
- 次のコマンドを実行してモデルを量子化します。
python resnet18_quant.py --quant_mode calib --subset_len 200
キャリブレーションの転送中は、浮動小数点モデルの評価フローを借用して、浮動小数点スクリプトからのコードの変更を最小限に抑えます。最後にロスと精度に関するメッセージが表示された場合は、無視してかまいません。
量子化および評価中の反復回数を制御することは非常に重要です。一般的に、量子化には 100 ~ 1000 個の画像があれば十分ですが、評価には検証セット全体が必要とされます。反復回数はデータ読み込み部で制御できます。この場合、引数
subset_len
により、ネットワーク転送に使用する画像の数を制御できます。浮動小数点評価スクリプトに同様の引数がない場合、引数を追加する必要があります。量子化コマンドが正常に実行されると、出力ディレクトリ「./quantize_result」に 2 つの重要なファイルが生成されます。
- ResNet.py
- 変換後の vai_q_pytorch 形式モデル。
- Quant_info.json
- テンソルの量子化ステップ。量子化されたモデルを評価するには、このファイルが必要です。
- 次のコマンドを実行して、量子化されたモデルを評価します。
python resnet18_quant.py --quant_mode test
コマンドが正常に実行された後に表示される精度は、量子化されたモデルの精度です。
- コンパイル用の XMODEL (および ONNX 形式で量子化されたモデル) を生成するには、バッチ サイズを 1 に設定する必要があります。冗長な反復を避けるために
subset_len=1
に設定し、次のコマンドを実行します。python resnet18_quant.py --quant_mode test --subset_len 1 --batch_size=1 --deploy
実行中にログに表示されるロスと精度は無視します。Vitis AI コンパイラ用の XMODEL ファイルが、出力ディレクトリ ./quantize_result に生成されます。このファイルは FPGA での運用に使用されます。
ResNet_int.xmodel: deployed XIR format model ResNet_int.onnx: deployed onnx format model ResNet_int.pt: deployed torch script format model
注記: XIR は、Vitis AI Docker 内の Vitis AI-pytorch conda 環境ですぐに利用可能です。ただし、vai_q_pytorch をソースコードからインストールする場合、XIR を事前にインストールしておく必要があります。XIR がインストールされていないと、XMODEL ファイルが生成できず、コマンド実行時にエラーが発生します。その場合も、精度は出力ログで検証できます。