TensorFlow Lite for Microcontrollers

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

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

マイクロコントローラは通常、小型で低電力のコンピューティング デバイスであり、基本的な計算を必要とするハードウェアに埋め込まれています。小さなマイクロコントローラに機械学習を行わせることで、家電やモノのインターネットなど、日常生活で使用するさまざまなデバイスのインテリジェンスを高められます。高価なハードウェアや、信頼性の高いインターネット接続(帯域幅や電力の制約によりレイテンシが高くなりがち)に頼る必要もなくなります。さらに、データがデバイスの外に出ないため、プライバシーの保護にも役立ちます。毎日決まった仕事をこなせるスマート家電、動作の異常と正常を見分けられるインテリジェント工業センサー、子どもが自分で楽しく学習できる魅力的なおもちゃを想像してください。

対応プラットフォーム

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

次の開発ボードに対応しています。

例を見る

各サンプル アプリケーションは GitHub で入手できます。なお、対応プラットフォームへのデプロイ方法を記述した README.md ファイルが付属しています。サンプルによっては、以下に示すように、特定のプラットフォームを使用したエンドツーエンドのチュートリアルも付属しています。

ワークフロー

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

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

制限事項

TensorFlow Lite for Microcontrollers は、特にマイクロコントローラの開発上の制約に対応した設計となっています。より高機能なデバイス(Raspberry Pi のような組み込み Linux デバイスなど)の開発を行う場合は、標準の TensorFlow Lite フレームワークの方が容易に統合できます。

考慮する必要がある制限事項は次のとおりです。

  • TensorFlow オペレーションの一部しかサポートされていない
  • デバイスの一部しかサポートされていない
  • 低レベルの C++ API では手動でのメモリ管理が必要となる
  • デバイス上でのトレーニングはサポートされていない

次のステップ