トレーニング済みの浮動小数点モデルと、量子化の前のモデルの精度/mAP を評価するための Python スクリプトがある場合、クオンタイザー API は浮動小数点モジュールを量子化済みモジュールに置き換えます。通常の評価関数では、量子化済みモジュールの転送が推奨されます。フラグ quant_mode が「calib」に設定されている場合、量子化キャリブレーションが評価プロセス中のテンソルの量子化ステップを決定します。キャリブレーションの実行後、quant_mode を「test」に設定して、量子化されたモデルを評価します。
- vai_q_pytorch モジュールをインポートします。
from pytorch_nndct.apis import torch_quantizer, dump_xmodel
- 量子化に必要な入力でクオンタイザーを生成し、変換されたモデルを取得します。
input = torch.randn([batch_size, 3, 224, 224]) quantizer = torch_quantizer(quant_mode, model, (input)) quant_model = quantizer.quant_model
- 変換されたモデルと共にニューラル ネットワークを転送します。
acc1_gen, acc5_gen, loss_gen = evaluate(quant_model, val_loader, loss_fn)
- 量子化の結果を出力し、モデルを運用します。
if quant_mode == 'calib': quantizer.export_quant_config() if deploy: quantizer.export_xmodel() quantizer.export_onnx_model()