for WPF developers
Home Profile Tips 全記事一覧

Keras による学習モデルを変換して Raspberry Pi 3 Model B+ 上で .NET Core アプリから共有ライブラリ経由で TensorFlow Lite の学習モデルによる推論を実行する (1)

(2020/02/04 15:00:45 created.)

(2020/02/07 9:17:08 modified.)

ここでは、タイトルの通り Keras の学習モデルを Raspberry Pi 上で動作させるまでのプロセスをまとめています。今回は第 1 回として VMWare Player 上で Ubuntu の環境を整えるまでをまとめていきます。

目次

  • 予告
  • Ubuntu with VMWare Player で環境を準備する <-- 今ココ!
  • libtensorflow-lite.a 静的ライブラリをビルドする
  • Keras in Python でサンプル用の学習モデルを構築する
  • Keras で構築した学習モデルを TensorFlow Lite のモデルに変換する
  • 静的ライブラリで TensorFlow Lite のモデルを使用する C アプリケーションを Ubuntu 上で動かす
  • TensorFlow Lite のモデルで推論する機能を提供する ARM 向け共有ライブラリをクロスコンパイルする
  • 作成した共有ライブラリを使用する C アプリケーションを Raspberry Pi 上で動かす
  • .NET Core コンソールアプリケーションを Raspberry Pi 上で動かす
  • .NET Core コンソールアプリケーションから共有ライブラリを参照して TensorFlow Lite のモデルを使用した推論をおこなう

VMWare Workstation Player のインストール

VMWare Workstation Player はこちらから入手してください。インストーラのウィザードにしたがってインストールするだけの簡単なお仕事です。

Ubuntu の入手

Ubuntu はこちらから入手してください。バージョンは 18.04.3 でも問題ないと思いますが、ここでは動作確認の際に使用していた ubuntu-16.04.3-desktop-amd64.iso を紹介しておきます。

Ubuntu の導入

VMWare Workstation Player を起動し、仮想環境の新規作成をおこないます。ダウンロードした Ubuntu の .iso ファイルを指定すると、簡易インストーラが自動的に選択され、ものの数分で Ubuntu デスクトップ環境が使用できる状態になります。OS のインストールなんて下手したら 1 日かかっていたような作業だったのに、時代の変化って怖いですね。何はともあれ、これにて終了、ってわけにもいかんのです。

割り当てる RAM 領域は 8GB 以上がオススメです。本連載記事には関係ありませんが、TensorFlow の C++ API を Bazel でビルドする場合、メモリが 8GB 以上ないとコンパイル途中で "matrix_square_root_op (exit 4)" などのエラーが発生してにっちもさっちもいかなくなります。

Ubuntu の各種設定

1. 自動サスペンド無効

パソコンで作業していたら、いつのまにか仮想環境の画面が真っ黒…。さらに自分の場合、そこから復帰できなくて VMWare を強制終了した経験もあります。そうならないためにも、自動サスペンド機能は無効にしておいてほうが無難です。

SystemSettings -> Brightness & Lock のメニューで、「Turn screen off when inactive for:」の項目を Never、「Lock」の項目を OFF にする。

2. キーボード配列を日本語に変更

Ubuntu Japanese から .iso ファイルを入手してインストールした方や英語配列を使う方には無縁ですが、念のため掲載。

terminal
  1. sudo dpkg-reconfigure keyboard-configuration

で表示されるメニューから Generic 105-key (intl.) PC を選択。さらに、

terminal
  1. sudo dpkg-reconfigure keyboard-configuration

で同じメニューを表示して、 Generic 105-key (intl.) PC -> Japanese -> Japanese -> The default for the keyboard layout -> No compose key -> No を選択。

3. 自動アップデート停止

個人的に自動アップデートは嫌いなのでその辺を手動設定に切り替えます。

SystemSettings -> Software & Updates のメニューで、Updates タブの「Automatically check for updates」を Never にする。

もし作業中に「Upgrade Available」のダイアログが表示された場合は「Don't Upgrade」ボタンを押し、次のダイアログで「OK」を押す。

4. タイムゾーン設定

時刻がずれている場合があるので、タイムゾーンに注意しながら設定しましょう。

SystemSettings -> Time & Date のメニューで、 地図上で日本周辺をクリックして Location を Tokyo にする。時刻を入力した後、「Automatically from the Internet」を ON にする。

5. 既存パッケージの更新

言わずもがな、有名なコマンドですね。自分の場合はダウロードに 18 分、適用に 4 分かかりました。

terminal
  1. sudo apt-get update
  2. sudo apt-get upgrade

6. git と curl のインストール

これからの作業で必要になってくるパッケージをインストールしておきます。

terminal
  1. sudo apt-get install git curl

7. パッケージを掃除する

インストール作業などで汚れた環境を掃除しておきます。df コマンドなどで before/after を比較すると面白いです。自分の場合およそ 400MB ほど削除されました。

terminal
  1. sudo apt-get clean
  2. sudo apt-get autoremove

まとめ

まだ本題にはまったく入っていませんが、これでとりあえず Ubuntu の環境が整いました。次回は TensorFlow Lite の静的ライブラリをビルドしたいと思います。