変換パラメーター¶
このドキュメントでは、特定のフレームワーク・モデル形式に注目することなく、openvino.convert_model
、ovc
、および 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
パラメーターは、Pythonopenvino.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_model
は openvino.save_model
の必須パラメーターです。
verbose
パラメーターは、標準出力に出力される追加の診断を有効にします。変換で問題が発生した際のデバッグ用途、および OpenVINO チームへの適切なバグレポートのための情報収集に使用します。
注
重みの共有は、サポートされるすべてのモデル形式で等しく機能するとは限りません。このフラグの値は変換 API のヒントとして考慮されますが、実際の共有は、それが実装され、特定のモデル表現で可能な場合にのみ使用されます。
ovc -h
または ovc --help
を実行して、ovc
でサポートされているすべてのパラメーターを表示することができます。
インストールされている OpenVINO パッケージのバージョンを確認するには、ovc --version
を使用します。