Vitis AI クオンタイザーのフロー - 2.5 日本語

Vitis AI ユーザー ガイド (UG1414)

Document ID
UG1414
Release Date
2022-06-15
Version
2.5 日本語

モデル全体の量子化フローを次の図に示します。

図 1. VAI クオンタイザーのワークフロー
注記: Caffe のサポートは Vitis AI 2.5 で廃止されています。Caffe の詳細は、 Vitis AI 2.0 ユーザー ガイド を参照してください。

Vitis AI クオンタイザーは、浮動小数点モデルを入力として受け取り、前処理 (バッチ正規化の折りたたみと推論に必要ないノードの削除) を実行して、指定されたビット幅に重み/バイアスとアクティベーションを量子化します。

浮動小数点モデルを量子化する前に、「インスペクター」と呼ばれるオプションの手順を実行します。この手順では、量子化の前に浮動小数点モデルを検査します。インスペクターは分割に関する情報を出力し、どの演算子がどのデバイス (DPU/CPU) で実行されるかを示します。一般的に、DPU は CPU より高速です。できるだけ多くの演算子を DPU デバイスで実行することを推奨します。分割の結果には、演算子を DPU で実行できない理由を示すメッセージも含まれています。この情報は、DPU の能力に関する理解を向上させ、DPU に合わせてモデルを改善するのに役立ちます。

アクティベーションの統計データを取得し、量子化されたモデルの精度を向上させるために、Vitis AI クオンタイザーは、推論の反復を複数回実行し、アクティベーションを調整する必要があります。したがって、キャリブレーション イメージ データセットの入力が必要になります。一般的に 100 ~ 1000 個のキャリブレーション イメージでクオンタイザーは機能します。この場合、バック プロパゲーション (誤差逆伝搬法) の必要がないため、ラベルのないデータセットで十分です。

キャリブレーション後、量子化されたモデルは、DPU のデータ形式に従って DPU で運用可能なモデル (vai_q_tensorflow の場合は deploy_model.pb、vai_q_pytorch の場合は model_name.xmodel、vai_q_caffe の場合は deploy.prototxt/deploy.caffemodel) に変換されます。このモデルは、その後 Vitis AI コンパイラによってコンパイルされ、DPU にデプロイされます。量子化されたモデルは、TensorFlow、PyTorch、または Caffe フレームワークの標準バージョンで取り込むことはできません。