従来の変換 API

このドキュメントでは、モデル変換に対する従来のアプローチについて説明します。OpenVINO 2023.1 以降、モデル変換でよりシンプルな代替 API である openvino.convert_model および OpenVINO モデル・コンバーター ovc CLI ツールが利用できます。詳細については、モデルの準備をご覧ください。まだ openvino.tools.mo.convert_model または mo CLI ツールを使用している場合でも、このドキュメントは参考になります。ただし、従来の変換 API から新しい変換 API に移行する方法について移行ガイドを確認することを検討してください。モデルのトポロジーによっては、新しい API のほうが適切している可能性があります。

モデルを OpenVINO モデル形式 (ov.Model) に変換するには、次のコマンドを使用します。

from openvino.tools.mo import convert_model
ov_model = convert_model(INPUT_MODEL)
mo --input_model INPUT_MODEL

すぐに利用できる変換 (input_model パラメーターのみが指定されている) が失敗した場合は、次のパラメーターを使用して入力形状をオーバーライドし、モデルを切り取ります。

  • inputinput_shape - モデル変換の元の入力形状をオーバーライドするモデル変換 API パラメーター。

    このパラメーターの詳細については、入力形状の設定を参照してください。

  • inputoutput - 変換されたモデルの新しい入力と出力を定義して、不要な部分 (サポートされていない操作やトレーニング・サブグラフなど) を削除するモデル変換 API パラメーター。

    詳細については、モデルの一部を切り取るガイドを参照してください。

  • mean_valuesscales_valueslayout - 変換されたモデルに追加の入力前処理サブグラフを挿入するパラメーター。

    詳細については、前処理計算の埋め込みを参照してください。

  • compress_to_fp16 - mo コマンドライン・ツールの圧縮パラメーター。FP16 データタイプに圧縮された定数 (畳み込みや行列乗算の重みなど) を使用して IR を生成できます。

    詳細については、FP16 へのモデルの圧縮ガイドを参照してください。

変換パラメーターの完全なリストは、次のコマンドで取得できます。

from openvino.tools.mo import convert_model
ov_model = convert_model(help=True)
mo --help

モデル変換パラメーターの例

以下は、さまざまなフレームワークとモデル変換パラメーターの個別のリスト例です。

  1. TensorFlow MobileNet モデルのモデル変換をバイナリー protobuf 形式で起動します。

    from openvino.tools.mo import convert_model
    ov_model = convert_model("MobileNet.pb")
    
    mo --input_model MobileNet.pb
    

    3 つの入力を使用して、SavedModel 形式で TensorFlow BERT モデルのモデル変換を開始します。バッチサイズとシーケンス長が 2 と 30 の入力形状を明示的に指定します。

    from openvino.tools.mo import convert_model
    ov_model = convert_model("BERT", input_shape=[[2,30],[2,30],[2,30]])
    
    mo --saved_model_dir BERT --input_shape [2,30],[2,30],[2,30]
    

    詳細については、TensorFlow モデルの変換ガイドを参照してください。

  2. ONNX OCR モデルの変換を起動し、新しい出力を明示的に指定します。

    from openvino.tools.mo import convert_model
    ov_model = convert_model("ocr.onnx", output="probabilities")
    
    mo --input_model ocr.onnx --output probabilities
    

    詳細については、ONNX モデルの変換ガイドを参照してください。

    PyTorch モデルは、IR に変換する前に ONNX 形式にエクスポートする必要があります。詳細については、PyTorch モデルの変換を参照してください。

  3. PaddlePaddle UNet モデルの変換を開始し、平均スケール正規化を入力に適用します。

    from openvino.tools.mo import convert_model
    ov_model = convert_model("unet.pdmodel", mean_values=[123,117,104], scale=255)
    
    mo --input_model unet.pdmodel --mean_values [123,117,104] --scale 255
    

    詳細については、PaddlePaddle モデルの変換ガイドを参照してください。