第5章. TinyMLの「ハロー・ワールド」:アプリケーションの構築
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
モデルは機械学習アプリケーションの一部分に過ぎない。それだけでは、ただの情報の塊であり、大したことはできない。モデルを使うためには、モデルをコードで包む必要がある。コードでは、モデルが実行するために必要な環境をセットアップし、入力を提供し、その出力を使って振る舞いを生成する。図5-1は、右側のモデルが基本的なTinyMLアプリケーションにどのように適合するかを示している。
この章では、サインモデルを使って小さなライトショーを作成する組み込みアプリケーションを構築する。モデルにx の値を入力し、推論を実行し、その結果を使ってLEDのオン・オフを切り替えたり、デバイスにLCDディスプレイがあればアニメーションを制御したりする連続ループをセットアップする。
このアプリケーションはすでに書かれている。これはC++ 11のプログラムで、コードは複雑なロジックを避け、完全なTinyMLアプリケーションの可能な限り小さな実装を示すように設計されている。このシンプルさは、TensorFlow Lite for Microcontrollersの使い方を学ぶのに役立つ。また、テンプレートとしても有用である。この章を読めば、TensorFlow Lite for Microcontrollersプログラムの一般的な構造が理解でき、同じ構造を自分のプロジェクトで再利用できるようになる。
この章では、アプリケーションのコードを説明し、どのように動作するかを説明する。次の章では、ビルドと複数のデバイスへのデプロイについて詳しく説明する。C++に慣れていなくても、慌てる必要はない。コードは比較的シンプルで、すべて詳しく説明する。この章が終わる頃には、モデルの実行に必要なすべてのコードに慣れているはずだし、その過程でC++を少し学ぶこともできるだろう。
図5-1. 基本的なTinyMLアプリケーション・アーキテクチャ
チップ
TensorFlowは活発に開発されているオープンソースプロジェクトであるため、ここに掲載されているコードとオンライン上のコードには若干の違いがあるかもしれない。たとえ数行のコードが変わったとしても、基本原則は変わらない。
テストを通して歩く
アプリケーション・コードで手を汚す前に、テストを書いておくのは良い考えだ。テストとは、特定のロジックの一部を示す短いコードの断片のことである。動作するコードからできているので、テストを実行することで、そのコードが想定通りの動作をすることを証明することができる。テストを書いた後、プロジェクトがコードに変更を加えても期待通りに動いているかどうかを継続的に検証する方法として、テストを自動的に実行することがよくある。また、テストは物事の進め方の実例としても非常に役に立つ。
hello_world サンプルには、hello_world_test.ccで定義されたテストがあり、モデルをロードし、それを使って推論を実行し、その予測が期待通りであることをチェックする。このテストには、これを実行するために必要な正確なコードがコンテナとして含まれており、他には何も含まれていない。従って、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