OpenVINO IR への変換#
OpenVINO IR は、OpenVINO で使用される独自のモデル形式であり、通常はサポートされているフレームワークのモデルを変換することによって取得されます:
convert_model()メソッド:これは PyTorch モデルに適用できる唯一の方法です。
サポートされる形式のリスト:
Python オブジェクト:
torch.nn.Moduletorch.jit.ScriptModuletorch.jit.ScriptFunctiontorch.export.ExportedProgram
import torchvision import openvino as ov model = torchvision.models.resnet50(weights='DEFAULT') ov_model = ov.convert_model(model) compiled_model = ov.compile_model(ov_model, "AUTO")
convert_model()メソッド:convert_model()メソッドではより詳細な制御が可能になり、ov.Modelの追加調整ができるようになります。read_model()メソッドとcompile_model()メソッドは利便性がありますが、そのような機能はありません。ov.Modelを使用すると、最適化、コンパイル、推論の実行を選択するか、後で使用するためファイルをシリアル化するかを選択できます。サポートされる形式のリスト:
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>または<INPUT_MODEL>.pbCheckpoint -
<INFERENCE_GRAPH>.pbまたは<INFERENCE_GRAPH>.pbtxtMetaGraph -
<INPUT_META_GRAPH>.meta
Python オブジェクト:
tf.keras.Modeltf.keras.layers.Layertf.Moduletf.compat.v1.Graphtf.compat.v1.GraphDeftf.functiontf.compat.v1.sessiontf.train.checkpoint
import openvino as ov ov_model = ov.convert_model("saved_model.pb") compiled_model = ov.compile_model(ov_model, "AUTO")
read_model()とcompile_model()メソッド:サポートされる形式のリスト:
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>または<INPUT_MODEL>.pbCheckpoint -
<INFERENCE_GRAPH>.pbまたは<INFERENCE_GRAPH>.pbtxtMetaGraph -
<INPUT_META_GRAPH>.meta
import openvino as ov core = ov.Core() ov_model = core.read_model("saved_model.pb") compiled_model = ov.compile_model(ov_model, "AUTO")
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>または<INPUT_MODEL>.pbCheckpoint -
<INFERENCE_GRAPH>.pbまたは<INFERENCE_GRAPH>.pbtxtMetaGraph -
<INPUT_META_GRAPH>.meta
ov::CompiledModel compiled_model = core.compile_model("saved_model.pb", "AUTO");
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>または<INPUT_MODEL>.pbCheckpoint -
<INFERENCE_GRAPH>.pbまたは<INFERENCE_GRAPH>.pbtxtMetaGraph -
<INPUT_META_GRAPH>.meta
ov_compiled_model_t* compiled_model = NULL; ov_core_compile_model_from_file(core, "saved_model.pb", "AUTO", 0, &compiled_model);
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
ovc コマンドライン・ツールを使用して、モデルを IR に変換できます。取得された IR は、read_model() によって読み取られ、推論できます。
ovc <INPUT_MODEL>.pb変換の詳細についてはこちらを参照してください。
convert_model()メソッド:convert_model()メソッドではより詳細な制御が可能になり、ov.Modelの追加調整ができるようになります。read_model()メソッドとcompile_model()メソッドは利便性がありますが、そのような機能はありません。ov.Modelを使用すると、最適化、コンパイル、推論の実行を選択するか、後で使用するためファイルをシリアル化するかを選択できます。サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.tflite
import openvino as ov ov_model = ov.convert_model("<INPUT_MODEL>.tflite") compiled_model = ov.compile_model(ov_model, "AUTO")
read_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.tflite
import openvino as ov core = ov.Core() ov_model = core.read_model("<INPUT_MODEL>.tflite") compiled_model = ov.compile_model(ov_model, "AUTO")
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.tflite
import openvino as ov compiled_model = ov.compile_model("<INPUT_MODEL>.tflite", "AUTO")
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.tflite
ov::CompiledModel compiled_model = core.compile_model("<INPUT_MODEL>.tflite", "AUTO");
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.tflite
ov_compiled_model_t* compiled_model = NULL; ov_core_compile_model_from_file(core, "<INPUT_MODEL>.tflite", "AUTO", 0, &compiled_model);
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
convert_model()メソッド:moコマンドライン・ツールを使用して、モデルを IR に変換できます。取得された IR は、read_model()によって読み取られ、推論できます。サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.tflite
ovc <INPUT_MODEL>.tflite変換の詳細についてはこちらを参照してください。
convert_model()メソッド:convert_model()メソッドではより詳細な制御が可能になり、ov.Modelの追加調整ができるようになります。read_model()メソッドとcompile_model()メソッドは利便性がありますが、そのような機能はありません。ov.Modelを使用すると、最適化、コンパイル、推論の実行を選択するか、後で使用するためファイルをシリアル化するかを選択できます。サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.onnx
import openvino as ov ov_model = ov.convert_model("<INPUT_MODEL>.onnx") compiled_model = ov.compile_model(ov_model, "AUTO")
read_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.onnx
import openvino as ov core = ov.Core() ov_model = core.read_model("<INPUT_MODEL>.onnx") compiled_model = ov.compile_model(ov_model, "AUTO")
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.onnx
import openvino as ov compiled_model = ov.compile_model("<INPUT_MODEL>.onnx", "AUTO")
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.onnx
ov::CompiledModel compiled_model = core.compile_model("<INPUT_MODEL>.onnx", "AUTO");
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.onnx
ov_compiled_model_t* compiled_model = NULL; ov_core_compile_model_from_file(core, "<INPUT_MODEL>.onnx", "AUTO", 0, &compiled_model);
変換の詳細についてはこちらを参照してください
convert_model()メソッド:moコマンドライン・ツールを使用して、モデルを IR に変換できます。取得された IR は、read_model()によって読み取られ、推論できます。サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.onnx
ovc <INPUT_MODEL>.onnx変換の詳細についてはこちらを参照してください
convert_model()メソッド:convert_model()メソッドではより詳細な制御が可能になり、ov.Modelの追加調整ができるようになります。read_model()メソッドとcompile_model()メソッドは利便性がありますが、そのような機能はありません。ov.Modelを使用すると、最適化、コンパイル、推論の実行を選択するか、後で使用するためファイルをシリアル化するかを選択できます。サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.pdmodel
Python オブジェクト:
paddle.hapi.model.Modelpaddle.fluid.dygraph.layers.Layerpaddle.fluid.executor.Executor
import openvino as ov ov_model = ov.convert_model("<INPUT_MODEL>.pdmodel") compiled_model = ov.compile_model(ov_model, "AUTO")
read_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.pdmodel
import openvino as ov core = ov.Core() ov_model = core.read_model("<INPUT_MODEL>.pdmodel") compiled_model = ov.compile_model(ov_model, "AUTO")
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.pdmodel
import openvino as ov compiled_model = ov.compile_model("<INPUT_MODEL>.pdmodel", "AUTO")
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.pdmodel
ov::CompiledModel compiled_model = core.compile_model("<INPUT_MODEL>.pdmodel", "AUTO");
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
compile_model()メソッド:サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.pdmodel
ov_compiled_model_t* compiled_model = NULL; ov_core_compile_model_from_file(core, "<INPUT_MODEL>.pdmodel", "AUTO", 0, &compiled_model);
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
convert_model()メソッド:moコマンドライン・ツールを使用して、モデルを IR に変換できます。取得された IR は、read_model()によって読み取られ、推論できます。サポートされる形式のリスト:
ファイル:
<INPUT_MODEL>.pdmodel
ovc <INPUT_MODEL>.pdmodel変換の詳細についてはこちらを参照してください。
これらは基本的な例です。詳細な変換手順については、 PyTorch、ONNX、TensorFlow、TensorFlow Lite、PaddlePaddle の個別のガイドを参照してください。
変換パラメーターでサポートされているすべての変換オプションのリストを確認できます。
IR 変換の利点#
save_model を使用してモデルを OpenVINO IR として保存し、必要に応じて read_model を使用してロードします。これにより、変換ステップを回避できるため、モデルが最初の推論を行う時間を短縮できます。以下は、OpenVINO IR を活用してモデルを一度保存し、それを複数回実行する方法の例です:
# Run once
import openvino as ov
import tensorflow as tf
# 1. TF コードで作成したモデルを変換
model = tf.keras.applications.resnet50.ResNet50(weights="imagenet")
ov_model = ov.convert_model(model)
# 2. モデルを OpenVINO IR として保存
ov.save_model(ov_model, 'model.xml', compress_to_fp16=True) # enabled by default
# 必要に応じて繰り返す
import openvino as ov
# 3. モデルをファイルからロード
core = ov.Core()
ov_model = core.read_model("model.xml")
# 4. モデルをメモリーからコンパイル
compiled_model = ov.compile_model(ov_model)