def export_onnx_model (self、output_dir、verbose) - 新規 - 3.5 日本語

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

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 日本語

ネイティブの ONNX モデルは、INT8 量子化と半偶数の丸めのみをサポートしています。Vitis AI クオンタイザーから ONNX 形式にモデルを変換するとき、その他の量子化ビットとその他の丸め手法 (ハーフアップ、ゼロ方向など) はエクスポートできません。これに対処するため、ONNX モデルへ変換する場合、vai::QuantizeLinear および vai::DequantizeLinear を使用して対応するネイティブ ONNX 演算子に置き換えます。DequantizeLinear では、ネイティブの ONNX と Vitis AI のインターフェイスは同じです。ただし、QuantizeLinear では、それらの間にいくつか違いがあります。これについて次にまとめます。

  • ONNX には入力のリスト (x、y_scale、y_zero_point) があります。一方、Vitis AI にも入力リスト (x、valmin、valmax、scale、zero_point、method) があります。valmin および valmax は量子化間隔です。たとえば、INT8 対称量子化に対して valmin=-128 および valmax=127、メソッドは丸め (半偶数、ハーフアップ、ダウン、アップ、ゼロに向かって、ゼロから離れてなど) となります。
  • 次の定義で native_onnx=True に設定することで、ネイティブ Quant-Dequant ONNX モデルが可能になります。設定しない場合、Vitis AI QuantizeLinear および DequantizeLinear 演算子と共に Quant-Dequant ONNX モデルが取得されます。デフォルト値は False です。

    この関数は、量子化されたモデルを ONNX 形式でエクスポートします。
    def export_onnx_model(self, output_dir="quantize_result", verbose=False, dynamic_batch=False,                   opset_version=None, native_onnx=True, dump_layers=False, check_model=False, opt_graph=False):
表 1. 引数
引数 説明
output_dir 量子化の結果と中間ファイルを格納するディレクトリ。デフォルト値は quantize_result です。
verbose 冗長ログを制御するフラグ。
Dynamic_batch 入力形状のバッチサイズをダイナミックに設定するかどうかのフラグ。デフォルト値は False です。
Opset_version ターゲットとするデフォルト (ai.onnx) opset のバージョン。設定しない場合、現時点の PyTorch バージョンに対して安定した最新バージョンとなります。
Native_onnx ネイティブ Quant-Dequant 演算子またはカスタム Quant-Dequant 演算子で ONNX モデルをエクスポートします。True に設定した場合、ネイティブ Quant-Dequant ONNX モデルが受信されます。設定しない場合、VAI Quant-Dequant ONNX モデルが生成されます。デフォルトは True です。
Dump_layers ONNX モデルにおける各レイヤーの出力を実行中にダンプします。デフォルト値は False です。
Check_model XMODEL および ONNX モデル間の出力の違いをチェックします。デフォルト値は False です。
Opt_graph ONNX グラフを最適化します。デフォルト値は False です。