技術共有

ESP32 を学習するための ESP-DL ディープラーニング チュートリアルの 18 エピソード - 「MCU Embedded AI Development Notes」

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ESP32 を学習するための ESP-DL ディープラーニング チュートリアルの 18 エピソード - 「MCU Embedded AI Development Notes」

参考ドキュメント: https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/tutorials/index.html
ここに画像の説明を挿入します

TVM を使用してモデル展開プロジェクトを自動的に生成する

このケースでは、TVM 導入モデルを使用する完全なプロセスを紹介します。 このプロジェクトは TVM v0.14.0 ブランチに基づいており、現在はさらなる反復メンテナンスの予定はありません。現在、ESP-DL の conv2d オペレーターのみが接続されており、他のオペレーターは例外を引き起こす可能性があります。

準備する
ESP-DL は、ESP シリーズのチップに適合した深層学習推論フレームワークです。このライブラリではモデルのトレーニングを完了できません。ユーザーは TensorFlow、PyTorch、その他のトレーニング プラットフォームを使用してモデルをトレーニングし、ESP-DL を通じてモデルをデプロイできます。
具体的なプロセスは、

ステップ 1 定量化する

まず、tensorflowPyTorch などのトレーニング済みモデルを変換します。TensorFlow プラットフォームを例に挙げると、スクリプトで tf2onnx を使用して、トレーニング済み TensorFlow モデルを ONNX モデル形式に変換できます。
次に、float32 モデルに対して一連の操作を実行して、定量化の準備をします。
次に、量子化ツールを使用して、前処理された float32 モデルを入力として受け入れ、int8 量子化モデルを生成します。

ステップ 2: モデルをデプロイする

ステップ 2.1:  を入力する準備をする
入力画像を準備します。入力画像のサイズは、取得した ONNX モデルの入力サイズと一致する必要があります。モデルの入力サイズは、Netron ツールを通じて表示できます。

ステップ 2.2: 導入プロジェクトの生成
TVM を使用して、入力が与えられたモデル推論を実行するためのプロジェクトを自動的に生成します。

ステップ 3: モデルを実行する

ステップ 3.1: 推論の実行
前の手順で生成されたプロジェクト ファイル new_project の構造は次のとおりです。

├── CMakeLists.txt
├── コンポーネント
│ ├── エスピーダ
│ └── tvm_model
│ ├── CMakeLists.txt
│ ├── crt_config
│ └── モデル
├── メイン
│ ├── app_main.c
│ ├── input_data.h
│ ├── output_data.h
│ └── CMakeLists.txt
├── パーティション.csv
├── sdkconfig.defaults
├── sdkconfig.defaults.esp32
├── sdkconfig.defaults.esp32s2
├── sdkconfig.defaults.esp32s3
ターミナル ESP-IDF (ESP-IDF のバージョンに注意してください) 環境を構成した後、プロジェクトを実行できます。

idf.py ターゲット esp32s3 を設定する
idf.py フラッシュモニター
ステップ 3.2: デバッグ