OpenVINO IR への変換¶
IR (中間表現) は、.xml
ファイルと .bin
ファイルで構成される OpenVINO 独自の形式です。パフォーマンス向上のためモデルを OpenVINO IR に変換します。
モデルの変換¶
さまざまなモデル形式でこれらのメソッドを使用するコード例を次に示します。
-
convert_model()
メソッド:これは PyTorch モデルに適用できる唯一の方法です。
サポートされる形式のリスト:
-
Python オブジェクト:
torch.nn.Module
torch.jit.ScriptModule
torch.jit.ScriptFunction
model = torchvision.models.resnet50(weights='DEFAULT') ov_model = convert_model(model) compiled_model = core.compile_model(ov_model, "AUTO")
-
-
convert_model()
メソッド:convert_model()
メソッドではより詳細な制御が可能になり、ov.Model
の追加調整ができるようになります。read_model()
メソッドとcompile_model()
メソッドは利便性がありますが、そのような機能はありません。ov.Model
を使用すると、最適化、コンパイル、推論の実行を選択するか、後で使用するためファイルをシリアル化するかを選択できます。サポートされる形式のリスト:
-
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>
または<INPUT_MODEL>.pb
Checkpoint -
<INFERENCE_GRAPH>.pb
または<INFERENCE_GRAPH>.pbtxt
MetaGraph -
<INPUT_META_GRAPH>.meta
-
Python オブジェクト:
tf.keras.Model
tf.keras.layers.Layer
tf.Module
tf.compat.v1.Graph
tf.compat.v1.GraphDef
tf.function
tf.compat.v1.session
tf.train.checkpoint
ov_model = convert_model("saved_model.pb") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
read_model()
とcompile_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>
または<INPUT_MODEL>.pb
Checkpoint -
<INFERENCE_GRAPH>.pb
または<INFERENCE_GRAPH>.pbtxt
MetaGraph -
<INPUT_META_GRAPH>.meta
ov_model = read_model("saved_model.pb") compiled_model = core.compile_model(ov_model, "AUTO")
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
-
-
compile_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>
または<INPUT_MODEL>.pb
Checkpoint -
<INFERENCE_GRAPH>.pb
または<INFERENCE_GRAPH>.pbtxt
MetaGraph -
<INPUT_META_GRAPH>.meta
ov::CompiledModel compiled_model = core.compile_model("saved_model.pb", "AUTO");
推論を実行するガイドについては、OpenVINO™ をアプリケーションと統合するを参照してください。
-
-
compile_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
SavedModel -
<SAVED_MODEL_DIRECTORY>
または<INPUT_MODEL>.pb
Checkpoint -
<INFERENCE_GRAPH>.pb
または<INFERENCE_GRAPH>.pbtxt
MetaGraph -
<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
ov_model = convert_model("<INPUT_MODEL>.tflite") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
read_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
<INPUT_MODEL>.tflite
ov_model = read_model("<INPUT_MODEL>.tflite") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
compile_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
<INPUT_MODEL>.tflite
compiled_model = core.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
ov_model = convert_model("<INPUT_MODEL>.onnx") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
read_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
<INPUT_MODEL>.onnx
ov_model = read_model("<INPUT_MODEL>.onnx") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
compile_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
<INPUT_MODEL>.onnx
compiled_model = core.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.Model
paddle.fluid.dygraph.layers.Layer
paddle.fluid.executor.Executor
ov_model = convert_model("<INPUT_MODEL>.pdmodel") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
read_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
<INPUT_MODEL>.pdmodel
ov_model = read_model("<INPUT_MODEL>.pdmodel") compiled_model = core.compile_model(ov_model, "AUTO")
-
-
compile_model()
メソッド:サポートされる形式のリスト:
-
ファイル:
<INPUT_MODEL>.pdmodel
compiled_model = core.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
変換の詳細についてはこちらを参照してください
-
アプリケーションに最適なワークフローを選択するには、モデルの準備をお読みください。
変換パラメーターでサポートされているすべての変換オプションのリストを確認できます。
IR 変換の利点¶
save_model
を使用してモデルを OpenVINO IR として保存し、必要に応じて read_model
を使用してロードします。これにより、変換ステップを回避できるため、モデルが最初の推論を行う時間を短縮できます。OpenVINO IR にモデルを一度保存し、それを繰り返し使用する方法を示す例を示します。
# Run once
import openvino as ov
import tensorflow as tf
# 1. Convert model created with TF code
model = tf.keras.applications.resnet50.ResNet50(weights="imagenet")
ov_model = ov.convert_model(model)
# 2. Save model as OpenVINO IR
ov.save_model(ov_model, 'model.xml', compress_to_fp16=True) # enabled by default
# Repeat as needed
import openvino as ov
# 3. Load model from file
core = ov.Core()
ov_model = core.read_model("model.xml")
# 4. Compile model from memory
compiled_model = core.compile_model(ov_model)