Skip to main content

PyTorchからTFLiteへの変換

note

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

PyTorchからTFLiteへの変換

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

準備

環境構成

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

tip

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

conda activate sscma

モデルと重み

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

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

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

tip

TFLiteモデルをエクスポートするには、代表的なデータセットとしてトレーニングセットが必要です。見つからない場合、プログラムが自動的にダウンロードします。ただし、大規模なデータセットの場合、時間がかかることがありますので、しばらくお待ちください。

モデルのエクスポート

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

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

TFLiteエクスポート例

以下に、いくつかのモデル変換例(int8精度)を示します。参考にしてください。

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 tflite \
--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を実行してください。

モデル検証例

以下に、変換されたモデル(int8精度)を検証するための例を示します。参考にしてください。

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/_int8.tflite/g')" \
--show \
--cfg-options \
data_root='datasets/mask'
Loading Comments...