edit

Wio TerminalでTensorflow Liteを動作させる

Wio Terminalに公式的なArduino Tensorflow Lite libraryをインストールする方法について紹介します。これを参考して、Wio Terminalを使っているいくつかのの機械学習 (Machine learning)モデルをテストすることができます。

詳しくは、公式サイトのTensorFlow Lite For Microcontrollers(英語)をご参照ください。

Arduino TensorFlow Liteライブラリーをインストールする

1.Sketch -> Include Library -> Manager Libraries...をクリックして、Library Managerを開きます。

  1. Library Managerで Arduino TensorFlow Lite というキーワードを入力して検索します。出ていたライブラリーを開きます。 バージョン選択 の下で、コンパイルされ ない バージョンを選択して、インストールをクリックします。

ライブラリー設定

Wio Terminalでコンパイルできるために、ラブラリーファイルにちょっとした調整を行う必要があります。

  1. Documents/libraries/Arduino_TensorFlowLite のように、ライブラリーファイルの位置に移動します。

  2. **Arduino_TensorFlowLite**というファイルに入ったら、src -> third_party -> kissfftをクリックして、 **kiss_fft.h**というファイルを開きます。

  1. コードエディターを用いて、以下のように<sys/types.h>というヘッダーファイルを含む行を開いて選択します。
#ifdef FIXED_POINT
#include <sys/types.h>
# if (FIXED_POINT == 32)

次のように変更します:

#ifdef FIXED_POINT
#include <sys/types.h>
#if  __GNUC__ == 4
#include <stdint.h>
#endif
# if (FIXED_POINT == 32)

変更を保存します。

Arduino TensorFlow Lite Hello Worldを実行させる例

マイクロコントローラー用のTensorFlow Liteを使用する基礎を紹介します。モデルをトレーニングための完全なend-to-endワークフロー、TensorFlow Liteで使用できるように変更すること、マイクロコントローラーでインファレンスを実行させることが含まれています。

このサンプルはサイン関数を複製できるようにトレーリングされたモデルをめぐって作られました。これはいくつかのプラットフォームの実行を含んでいます。場合によって、このモデルは、LEDを点滅することまたはアニメーションを制御することに使用されるデータのパターンを生成することに使われます。

  1. Files -> Examples -> Arduino_TensorFlowLite -> hello_worldをクリックして、例のスケッチが表示されます。

  2. 今からコンパイルしたら、コンパイルエラー が現します。原因といえば、ボードのために定義された minmax関数は同時にArduino TensorFlowライブラリーで定義されているからです。これを解決するには、次のように 、includingライブラリーの直前に#undef max#undef minライトを使って、エラーを避けます。

#undef max
#undef min
#include <TensorFlowLite.h>
  1. アップロード をクリックします。

  2. シリアルプロッタを開いて、サイン波形が見えます。さらに、TensorFlow Liteから生成されたばかりのサイン波によると、裏側に内蔵されたLEDがゆっくり明るくなったり暗くなったりしていることが見えます。

Note: シリアルプロッター(i.e. LED flickering faster)の完全なサイン波を見たいなら、上の arduino_constants.cpp ファイルをクリックして、次のように kInferencesPerCycle を100に変えてください:

const int kInferencesPerCycle = 100;