マイクロコントローラ向け TensorFlow Lite

TensorFlow Lite for Microcontrollers は、わずか数キロバイトのメモリを搭載したマイクロコントローラなどのデバイスで ML モデルを実行するように設計されています。コア ランタイムは Arm Cortex M3 で 16 KB に収まり、多くの基本モデルを実行できます。オペレーティング システムのサポート、標準の C / C++ ライブラリ、動的メモリ割り当ては必要ありません。

マイクロコントローラが重要な理由

マイクロコントローラは通常、基本的な計算を必要とするハードウェアに組み込まれた小型で低電力のコンピューティング デバイスです。ML を小さなマイクロコントローラで実現することで、高価なハードウェアや信頼性の高いインターネット接続に依存することなく、家庭用電化製品やモノのインターネット デバイスなど、生活で使用されている何十億ものデバイスのインテリジェンスを向上させることができます。こうしたデバイスは、帯域幅や電力の制約を受けることが多く、レイテンシが高くなります。また、デバイスの外部に送信されるデータがないため、プライバシーの保護にも役立ちます。日常生活に適応できるスマート家電、問題と通常の動作の違いを理解するインテリジェントな産業センサー、子どもが楽しく楽しく学習できる魔法のおもちゃを想像してみてください。

対応プラットフォーム

TensorFlow Lite for Microcontrollers は C++ 17 で記述されており、32 ビット プラットフォームを必要とします。Arm Cortex-M シリーズ アーキテクチャに基づく多くのプロセッサで幅広くテストされており、ESP32 を含む他のアーキテクチャにも移植されています。このフレームワークは Arduino ライブラリとして利用できます。また、Mbed などの開発環境のプロジェクトも生成できます。オープンソースであり、任意の C++ 17 プロジェクトに含めることができます。

次の開発ボードがサポートされています。

例を見る

各サンプル アプリケーションは GitHub にあり、サポートされているプラットフォームへのデプロイ方法を説明する README.md ファイルがあります。一部の例には、以下に示す特定のプラットフォームを使用したエンドツーエンドのチュートリアルも含まれています。

ワークフロー

TensorFlow モデルをマイクロコントローラにデプロイして実行するには、次の手順が必要です。

  1. モデルをトレーニングする:
  2. C++ ライブラリを使用してデバイス上で推論を実行し、結果を処理します。

制限事項

TensorFlow Lite for Microcontrollers は、マイクロコントローラ開発に固有の制約を考慮して設計されています。より高性能のデバイス(Raspberry Pi などの組み込み Linux デバイスなど)で作業している場合は、標準の TensorFlow Lite フレームワークの方が統合が簡単な場合があります。

次の制限事項を考慮する必要があります。

  • TensorFlow オペレーションの限定されたサブセットのサポート
  • 一部のデバイスのみをサポート
  • 手動でのメモリ管理が必要な低レベルの C++ API
  • オンデバイス トレーニングはサポートされていません

次のステップ