Skip to main content

PyTorchからONNXへ

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

PyTorchからONNXへ

この章では、PyTorchモデルをONNXモデルに変換してエクスポートする方法について説明します。

準備

環境構成

トレーニングのステップと同様に、モデルエクスポートの段階では仮想環境で作業することを推奨します。sscma仮想環境内で、インストール - 前提条件 - 追加依存関係のインストールのステップが完了していることを確認してください。

tip

仮想環境を構成済みでまだ有効化していない場合は、以下のコマンドで有効化できます。

conda activate sscma

モデルと重み

モデルをエクスポートする前に、PyTorchモデルとその重みを準備する必要があります。モデルについては、Configセクションで事前に設定されています。重みについては、以下の手順を参考にしてモデルの重みを取得してください。

  • トレーニングセクションを参照し、モデルを選択してトレーニングを行い、モデルの重みを取得します。

  • または、SSCMA公式の事前トレーニング済みの重みをGitHub Releases - Model Zooからダウンロードします。

モデルのエクスポート

モデルの変換とエクスポートに関するコマンドといくつかの一般的なパラメータを以下に示します。

python3 tools/export.py \
"<CONFIG_FILE_PATH>" \
"<CHECKPOINT_FILE_PATH>" \
--target onnx

ONNXエクスポート例

以下に、参考となるモデル変換の例を示します。

python3 tools/export.py \
configs/fomo/fomo_mobnetv2_0.35_x8_abl_coco.py \
"$(cat work_dirs/fomo_mobnetv2_0.35_x8_abl_coco/last_checkpoint)" \
--target onnx \
--cfg-options \
data_root='datasets/mask'

モデルの検証

モデルのエクスポートプロセス中に、SSCMAはモデルの最適化をいくつかのツール(モデルの剪定、蒸留など)を使用して行います。トレーニングプロセス中にモデルの重みをテストおよび評価していますが、エクスポートされたモデルを再度検証することを推奨します。

python3 tools/inference.py \
"<CONFIG_FILE_PATH>" \
"<CHECKPOINT_FILE_PATH>" \
--show \
--cfg-options "<CFG_OPTIONS>"
tip

サポートされているその他のパラメータについては、ソースコードtools/inference.pyを参照するか、python3 tools/inference.py --helpを実行してください。

モデル検証例

python3 tools/inference.py \
configs/fomo/fomo_mobnetv2_0.35_x8_abl_coco.py \
"$(cat work_dirs/fomo_mobnetv2_0.35_x8_abl_coco/last_checkpoint | sed -e 's/.pth/.onnx/g')" \
--show \
--cfg-options \
data_root='datasets/mask'
Loading Comments...