ONNX モデルの変換#
ONNX の概要#
ONNX は、AI 開発者が異なるフレームワーク間でモデルを簡単に転送することを可能にするディープラーニング・モデルの表現形式です。
注
ONNX モデルは、最初に OpenVINO IR を準備しなくても、OpenVINO ランタイム API による openvino.Core.read_model
メソッドまたは openvino.Core.compile_model
メソッドによってロードできます。詳細については、推論の例を参照してください。モデルの読み込みレイテンシーが推論アプリケーションにとって重要である場合は、引き続き openvino.convert_model
を使用することを推奨します。
ONNX モデルの変換#
このページでは、ONNX 形式から OpenVINO IR 形式へのモデル変換手順を説明します。
モデルを変換するには、Hugging Face などのオンライン・データベースから直接ダウンロードした ONNX モデル、または ONNX 形式へのエクスポートをサポートする任意のフレームワークから変換した ONNX モデルが必要です。
ONNX モデルを変換するには、入力モデル .onnx
ファイルへのパスを引数として変換を行います:
import openvino as ov
ov.convert_model('your_model_file.onnx')
ovc your_model_file.onnx
外部データファイル#
モデルサイズが Protobuf で許可されている 2GB を超える場合、ONNX モデルは複数のファイルで構成される場合があります。ONNX の記事によると、モデルは単一のファイルではなく、拡張子 .onnx
を持つ 1 つのファイルと、外部データを含む複数の個別のファイルとして表されます。これらのデータファイルは、メインの .onnx
ファイルと同じディレクトリー、または別のディレクトリーに配置されます。
OpenVINO モデル・トランスフォーメーション API は、外部データ表現を使用した ONNX モデルをサポートします。この場合、拡張子が .onnx
のメインファイルを ovc
または openvino.convert_model
のパラメーターとして渡すだけで済みます。他のファイルは、モデル変換中に自動的に検索されてロードされます。変換後の OpenVINO モデルは、ファイル内で IR として表され、単一の .xml
ファイルと単一の .bin
ファイルを含む通常の構造を持ち、元のモデルの重みがすべてコピーされパックされます。
サポートされる ONNX レイヤー#
サポートされる標準レイヤーのリストについては、サポートされる操作を参照してください。
関連情報#
対話型の Python チュートリアルでその他のモデルの変換例を確認してください。