Help us understand the problem. What is going on with this article?

openFrameworks + ofxMSATensorFlow でディープラーニングを試してみる (OS X版)

More than 3 years have passed since last update.

ディープラーニングとofxMSATensorFlow

最近、何かと話題のディープラーニング(Deep Learning / 深層学習 / 機械学習)。TensorFlow、Chainer、Caffeなど様々な便利なライブラリもフリーで入手可能で、ずいぶんと敷居が下がってきた印象だ。

そんな中、イケメン天才アーティストのMemo Akten氏によって、openFrameworksでTensorFlowが使用できる、ofxMSATensorFlowというアドオンが公開された。早速、OS Xで動かしてみたので、設定方法をシェア。

※ 動作を確認したOSは、OS X 10.11 (El Capitan) のみです。

インストール

まずは、Githubからアドオンの本体をダウンロード。従来のアドオンと同様に、openFrameworksのルート/addons/ofxMSATensorFlow に配置する。

本来は、C++でTensorFlowを動かすためにいろいろ設定が必要なのだが、様々なプラットフォームごとにTensorFlowが環境構築されたシェアードライブラリが配布されている(親切!!)。ありがたく、これを使用する。OS Xの場合は、下記のリンクから ofxMSATensorFlow_lib_OSX_2016_02_21_v0.7_CPU.zip をダウンロードして解凍する。

中には libtensorflow_cc.so というライブラリが入っている。ofxMSATensorFlowではこれをホームディレクトリ直下のlibフォルダに配置して使用するように設定されている。以下のように設定

% cd ~
% mkdir lib
% cp Downloads/osx/libtensorflow_cc.so lib/.

Xcodeでサンプルを動かしてみる

MemoさんはQTCreatorで動かしているようなのだが、できることなら手に馴染んでいるXcodeで動かしたい。以下のように設定して無事サンプルを動かすことができた。まずは、基本サンプルの example-basic で試してみる。

ProjectGeneratorで、example-basicフォルダを選択してインポートする。自動的にaddonにはofxMSATensorFlowが入っているはずなので、そのままプロジェクトをUpdateする。(少し時間がかかる)

screenshot_254.png

TensorFlowのライブラリは既にシェアドライブラリとして持っているので、addonフォルダ内のものは必要ない。addons/ofxMSATensorFlow/libs/tensorflow をフォルダごと参照を削除。

Slice 1.png

また、このサンプルは、ofApp.hやofApp.cpp、main.cppを使用していない。srcフォルダ内で赤くなっているファイルを削除する。

screenshot_257.png

ここに、先程のライブラリを追加する。libsフォルダを右クリックして、"Add Files to ..." を選択。ファイルダイアログから、libフォルダ内の libtensorflow_cc.so を選択する。結果以下のようになるはず。

screenshot_256.png

あとは、Buildするだけ。こんな感じのサンプルが実行される(はず)!!

screenshot_258.png

MNISTを試してみる

MNIST(Mixed National Institute of Standards and Technology) とは、28x28pxの60000枚の学習サンプル、10000枚のテストサンプルからなる手書き数字画像データベースで、機械学習の世界ではこれを使って手書きの数字を認識させるのが "Hello World" 的な定番サンプルとなっている。ofxMSATensorFlowでもMNISTのサンプル example-mnist があるので、試してみる。

ただし、まず学習データが必要。こちらは別途ダウンロードする

解凍したフォルダ model-deep と model-deep の2つを、example-mnist/bin/data以下に配置する。

あとは、先程の example-basic と同じ手順でビルドできるはず。マウスで描いた数字を瞬時に判別する。ディープラーニングすごい!!

screenshot_252.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした