ONNX ランタイムランチャーの構成方法

ONNX ランタイムランチャーは、精度チェッカーツール内でモデルを簡単に起動するためにサポートされるラッパーの 1 つです。このランチャーを使用すると、ONNX ランタイムを推論バックエンドとして使用して ONNX 形式でモデルを実行できます。

ONNX ランタイムランチャーを有効にするには、構成ファイルのランチャーセクションに framework: onnx_runtime を追加し、次のパラメーターを指定する必要があります。

  • device - 推論に使用するデバイス (cpugpu など) を指定します。オプション、CPU がデフォルトとして使用されるか、使用される実行可能プロバイダーに依存します。

  • model- ONNX 形式のネットワーク・ファイルへのパス。

  • adapter - 生の出力がデータセットの表現にどのように変換されるかという問題に対処するため、一部のアダプターはフレームワークに固有であることがあります。アダプターの使用方法の詳細な説明は、こちらでご覧いただけます。

  • execution_providers - 評価用の実行プロバイダーのリスト (例: OpenVINO 実行プロバイダー)。デフォルトの [CPUExecutionProvider] が使用されます。

注: 実行プロバイダーは ONNX ランタイムの最新バージョンでのみ利用可能です。インストールされているバージョンが API をサポートしていない場合は、更新するか、このフィールドを指定しないでください。

config でモデル入力を指定

モデルに複数の入力がある場合、inputs キーを使用してランチャー設定セクションに入力レイヤーのリストを提供する必要があります。各入力の説明には次の情報が含まれている必要があります。

  • name - ネットワーク内のレイヤー名を入力します

  • type - 入力値のタイプに応じて、入力ポリシーに影響します。次のオプションが利用できます。

    • CONST_INPUT - 入力は、構成で提供される定数で埋められます。value の提供も必要です。

    • IMAGE_INFO - 入力形状の情報をレイヤーに設定する特定のキー (高速 RCNN ベースのトポロジーで使用)。value は実行時に計算されるため、指定の必要はありません。形式値は [H, W, S] 形式の N 要素からなるリストです。N はバッチサイズ、H - 元の画像の高さ、W - 元の画像の幅、S - 元の画像のスケール (デフォルトは 1) です。

    • ORIG_IMAGE_INFO - 前処理前の元の画像サイズの情報を設定する特定のキー。

    • PROCESSED_IMAGE_INFO - 前処理後の入力サイズの情報を設定する特定のキー。

    • SCALE_FACTOR - 画像スケール係数の情報を設定する特定のキーは [SCALE_Y, SCALE_X] として定義されます。ここで、SCALE_Y = <resized_image_height>/<original_image_heightSCALE_X = <resized_image_width> / <original_image_width>

    • IGNORE_INPUT - 評価中は空のままにしておく必要がある入力。

    • INPUT - メイン・データ・ストリームのネットワーク入力 (画像など)。複数のデータ入力がある場合、特定の value でどのデータを提供するかを指定する値として識別子の正規表現を提供する必要があります。

    オプションで、入力の形状 (実際には使用されません。ONNX ランタイムランチャーはネットワークから与えられた情報を使用します)、モデルが非標準のデータレイアウトでトレーニングされた場合のレイアウト (ONNX ランタイムのデフォルトレイアウトは NCHW)、精度 (サポートされている精度) を決定できます: FP32 - float、FP16 - signed shot、U8 - unsigned char、U16 - unsigned short int、I8 - signed char、I16 - short int、I32 - int、I64 - long int)。

ONNX ランタイムランチャーの構成例:

launchers:
  - framework: onnx_runtime
    device: CPU
    model: path_to_model/alexnet.onnx
    adapter: classification