Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • モデルの中に、cvtool でサポートしていないノードがある場合
    以下のコマンドで修正してください。

    Code Block
    $ graph_surgery.py onnx -m (修正前のモデル名) -o (修正後のモデル名) -t CVFlow

    cvtool がサポートするノードについてはこちらをご覧ください。

    また、モデルの中にサポートしていないノードがあるかは、onnx_print_graph_summary.py コマンドで確認することができます。

    Code Block
    $ onnx_print_graph_summary.py -p (モデル名)

  • 入力の形状(shape)に可変値がある場合

    image-20240416-002601.png

    以下のコマンドで固定値に置き換えます。

    Code Block
    $ graph_surgery.py onnx -m (修正前のモデル名) -o (修正後のモデル名) -isrc "i:input|is:1,3,960,960" -t SetIOShapes

  • 入力の形状が NHWC、かつモデルの最初に NCHWに transpose している場合

    cutInput.jpg

    モデルの先頭からTransposeノードまでを切り離します。

    Code Block
    $ graph_surgery.py onnx -m (修正前のモデル名) -o (修正後のモデル名) -isrc "i:(Transposeノードの出力名)|is:1,3,224,224" -t CutGraph

  • OUT_LAYER で指定したノードに、特定の記号( : | ; , ‘ )が含まれている場合

    特定の記号を含まないように、ノード名を変更します。

    Code Block
    $ graph_surgery.py onnx -m (修正前のモデル名) -o (修正後のモデル名) -t "RenameTensors(変更前のノード名=変更後のノード名)"


    複数のノード名を変更する場合は、','で区切ってください。

    Code Block
    -t "RenameTensors(node::1=node1,node::2=node2)"

  • モデルに rank > 4 のノードがある場合
    SoCの制約のため、変換できない可能性があります。

    モデルの中に該当するノードがあるかは、onnx_print_graph_summary.py コマンドで確認することができます。該当するノードがある場合には以下のようなメッセージが出力されます。

    Code Block
    $ onnx_print_graph_summary.py -p (モデル名)
    
    INFO: 08/29/2024 03:22:40.725761 onnx_print_graph_summary.py:384 [PrintGraphSummary] Unsupported tensors with rank > 4 (3):
    INFO: 08/29/2024 03:22:40.725837 onnx_print_graph_summary.py:386 [PrintGraphSummary] -> 'output' [1 x 3 x 52 x 52 x 85]
    INFO: 08/29/2024 03:22:40.725909 onnx_print_graph_summary.py:386 [PrintGraphSummary] -> '1026' [1 x 3 x 26 x 26 x 85]
    INFO: 08/29/2024 03:22:40.725993 onnx_print_graph_summary.py:386 [PrintGraphSummary] -> '1046' [1 x 3 x 13 x 13 x 85]


    以下の何れかの方法で、モデルを修正してください。
    ・onnx にエキスポートする前に、該当するノードを修正する
    ・該当するノードから後ろを、モデルから切り離す

    Code Block
    $ graph_surgery.py onnx -m (修正前のモデル名) -o (修正後のモデル名) -on (該当ノードの1つ前のノード) -t CutGraph


    ・該当するノードを rank=4以下のノードに置き換える

    Code Block
    $ graph_surgery.py onnx -m (修正前のモデル名) -o (修正後のモデル名) -t ReplaceSubgraph

    ※ReplaceSubgraph のご使用を希望される際はお問合せください。

Note

rank=4のノードでも、最初の次元の要素数が1ではない場合、変換できない可能性があります。

rank>4の場合と同様の対応を行ってください。