変換パラメーター

このドキュメントでは、特定のフレームワーク・モデル形式に注目することなく、openvino.convert_modelovc、および openvino.save_model で使用可能なすべてのパラメーターについて説明します。この情報は、変換 API 機能全般の一般的な説明として参照してください。オプションの一部は、特定のフレームワークに関連しない場合があります。詳細なフレームワーク依存チュートリアルについては、サポートされるモデル形式を参照してください。

ほとんどの場合、モデルの変換では次の単純な構文を使用できます。

import openvino as ov

ov_model = ov.convert_model('path_to_your_model')
# or, when model is a Python model object
ov_model = ov.convert_model(model)

# Optionally adjust model by embedding pre-post processing here...

ov.save_model(ov_model, 'model.xml')
ovc path_to_your_model

多くの場合、モデルまたはモデル・オブジェクトへのパスを openvino.convert_model 引数として指定するだけで変換できます。ただし、モデルトポロジーと元のディープラーニング・フレームワークによっては、次に説明する追加のパラメーターが必要になることがあります。

  • example_input パラメーターは、Python openvino.convert_model でのみ使用でき、モデルをトレースしてグラフ表現を取得することを目的としています。このパラメーターは PyTorch モデルの変換では重要であり、TensorFlow モデルで必要になる場合もあります。詳細については、PyTorch モデルから変換または TensorFlow モデルから変換を参照してください。

  • input パラメーターは、モデル入力の形状を設定またはオーバーライドします。推論の要件に応じて、モデル入力の動的次元と静的次元を構成します。このパラメーターの詳細については、入力形状の設定を参照してください。

  • output パラメーターを使用して、元のモデルから 1 つまたは複数の出力を選択します。これは、デプロイのシナリオでの推論に必要のない出力がモデルにある場合に便利です。必要な出力のみを指定することで、高速に推論できるさらにコンパクトなモデルを作成できます。

  • compress_to_fp16 パラメーターは、ovc CLI ツールと openvino.save_model Python 関数によって提供され、OpenVINO モデルを IR に保存する際に、FP16 形式へのモデルの重みの圧縮を制御します。このオプションはデフォルトで有効であるため、生成されるすべての IR で重みは FP16 データタイプを使用して保存され、モデルファイルのストレージスペースが最大で半分に縮小されます。また、ほとんどの場合モデルの精度が犠牲になることはありません。精度に影響する場合は、このフラグを False に設定することで圧縮を無効化できます。

import openvino as ov

ov_model = ov.convert_model(original_model)
ov.save_model(ov_model, 'model.xml' compress_to_fp16=False)
ovc path_to_your_model --compress_to_fp16=False

プラグインが圧縮された FP16 モデルを処理する方法の詳細については、推論デバイスとモードを参照してください。

FP16 圧縮は、INT8 量子化の事前ステップとして使用されることがあります。詳細については、トレーニング後の最適化を参照してください。

  • extension パラメーターを使用すると、OpenVINO で直接サポートされていない操作で構成されるモデルの変換が可能です。最初に OpenVINO 拡張機能を実装する必要があります。フロントエンド拡張機能を参照してください。

  • share_weigths パラメーターをデフォルト値 True に設定すると、元の重みでメモリーを再利用できます。Python でロードされ、openvino.convert_model に渡されたモデルでは、OpenVINO モデルは元の重みが配置されているプログラムメモリー内の同じ領域を共有することを意味します。openvino.convert_model によってファイルからロードされたモデルでは、余分なメモリー割り当てを避けるためファイル・メモリー・マッピングが使用されます。これを有効にすると、OpenVINO モデルの存続期間中、元のモデルを破棄できなくなります (Python オブジェクトの割り当てを解除できないため、元のモデルファイルを削除できません)。これが望ましくない場合は、openvino.convert_model を呼び出すときに share_weights=False を設定します。

ovc には share_weights オプションがないため、常に共有により変換時間を短縮し、変換中のメモリー消費量を減らします。

  • output_model パラメーター (ovc および openvino.save_model にある) は、生成される OpenVINO IR を含む出力 .xml ファイルの名前を指定します。関連する .bin ファイル名は、.xml 拡張子を .bin 拡張子に置き換えることで自動的に生成されます。output_model の値は .xml 拡張子で終わる必要があります。ovc コマンドライン・ツールでは、output_model にディレクトリー名を指定することもできます。この場合、生成される OpenVINO IR ファイルは、パラメーターとして ovc に渡された元のモデルのベース名と一致するベース名の .xml.bin ファイルとしてそのディレクトリー内に配置されます。例えば、ovc your_model.onnx --output_model directory_name を実行すると、ファイル directory_name/your_model.xml および directory_name/your_model.bin が作成されます。output_model が使用されない場合、現在のディレクトリーが宛先ディレクトリーとして使用されます。

openvino.save_model は、output_model パラメーター値のディレクトリーはサポートしません。これは、openvino.save_model は、メモリー内で表される OpenVINO モデル・オブジェクトを取得し、出力ファイル名の生成に使用できる元のモデルファイル名がないためです。同じ理由で、output_modelopenvino.save_model の必須パラメーターです。

  • verbose パラメーターは、標準出力に出力される追加の診断を有効にします。変換で問題が発生した際のデバッグ用途、および OpenVINO チームへの適切なバグレポートのための情報収集に使用します。

重みの共有は、サポートされるすべてのモデル形式で等しく機能するとは限りません。このフラグの値は変換 API のヒントとして考慮されますが、実際の共有は、それが実装され、特定のモデル表現で可能な場合にのみ使用されます。

ovc -h または ovc --help を実行して、ovc でサポートされているすべてのパラメーターを表示することができます。

インストールされている OpenVINO パッケージのバージョンを確認するには、ovc --version を使用します。