第13章. マイコン向けTensorFlow Lite
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、本書のすべての例で使用しているソフトウェアフレームワークについて見ていく:TensorFlow Lite for Microcontrollersである。この章では、TensorFlow Lite for Microcontrollersについて詳しく説明する。もし、ボンネットの下で何が起こっているかに興味がなければ、この章は読み飛ばして構わない。機械学習を実行するために使っているツールの理解を深めたい場合は、ライブラリーの歴史と内部構造をここでカバーする。
マイコン向けTensorFlow Liteとは?
最初の質問は、フレームワークが実際に何をするのか、ということだろう。それを理解するためには、(かなり長い)名前を少し分解して、コンポーネントを説明することが役に立つ。
TensorFlow
TensorFlowの名前自体は、マシン学習を研究している人なら聞いたことがあるかもしれない。TensorFlowはGoogleのオープンソース機械学習ライブラリで、"An Open Source Machine Learning Framework for Everyone "をモットーとしている。Google社内で開発され、2015年に初めて一般公開された。それ以来、このソフトウェアを中心に大規模な外部コミュニティが形成され、Google内部よりもGoogle外部の貢献者の方が多くなっている。Linux、Windows、macOSのデスクトップとサーバプラットフォームを対象としており、クラウドでのモデルのトレーニングとデプロイに関する多くのツール、例、最適化を提供している。このライブラリは、Google社内で同社の製品を動かすために使われている主要なマシンラーニング・ライブラリであり、コア・コード自体は社内版も公開版も同じだ。
また、Googleやその他のソースから入手できる例やチュートリアルも数多くある。これらは、音声認識からデータセンターの電力管理やビデオ分析に至るまで、あらゆるモデルの学習方法や使用方法を教えてくれる。
TensorFlowがローンチされたときの最大のニーズは、デスクトップ環境でモデルをトレーニングして実行する機能だった。例えば、RAMの単位がギガバイトで、ストレージ領域がテラバイトのクラウドサーバでは、バイナリのサイズが数百メガバイトでも問題ない。もうひとつの例は、立ち上げ時の主要インタフェース言語が、サーバで広く使われているスクリプト言語であるPythonだったことだ。
しかし、こうしたエンジニアリングのトレードオフは、他のプラットフォームではそれほど適切ではなかった。AndroidやiPhoneのデバイスでは、アプリのサイズに数メガバイトでも追加すると、ダウンロード数や顧客満足度が劇的に低下する可能性がある。これらの電話プラットフォーム向けにTensorFlowを構築することはできるが、デフォルトではアプリケーションのサイズに20MBが追加され、多少の作業をしても2MB以下に縮小されることはない。
TensorFlow Lite
このようなモバイルプラットフォーム向けの低サイズ要件に対応するため、Googleは2017年にTensorFlow Liteと呼ばれるTensorFlow本家のコンパニオンプロジェクトを開始した。このライブラリは、モバイルデバイス上で効率的かつ簡単にニューラルネットワークモデルを実行することを目的としている。フレームワークのサイズと複雑さを軽減するため、これらのプラットフォームではあまり一般的でない機能を削除している。例えば、トレーニングはサポートしておらず、クラウドプラットフォームで以前にトレーニングされたモデルで推論を実行するだけだ。また、メインラインのTensorFlowで利用可能なデータ型( ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access