こちらはTensorFlow Advent Calendar 2016の5日目です。
この記事はこれからTensorflow始めてみようというAndroidエンジニア、iOSエンジニア向けです。
- 開発環境: Mac
- Tensorflow: r0.12
- 検証端末: Galaxy S6
- 検証端末: iPhone 6
安装 Java 语言的软件开发工具包 brew cask install java 或者在Oracle官网 中选择 Mac 版本 jdk-8u111-macosx-x64.dmg 下载并安装. 安装 Solr brew install solr 当前(2016-11-10) brew 源的 Solr 版本为 6.1.0,你可以通过brew edit solr来修改你要安装的版本. 双击安装好后,执行java -version 显示是可以的. VmacdeMac: vmac $ java-version java version '1.8.0111' Java (TM) SE Runtime Environment (build 1.8. 0111-b14) Java HotSpot (TM) 64-Bit Server VM (build 25.111-b14, mixed mode) 但还是要继续配置JAVAHOME环境变量,否则macaca doctor会报.
理論はともかく動かしてみよう!
機械学習って自分には関係ないって思ってませんか?TensorflowはAndroid/iOSローカルで動きます!リアルタイムです!
公式のチュートリアルでは、Bazelっていうビルドツールが必要なのですが、独自色が強く、Android/iOSエンジニアには敷居が高いです。そんなBazelのインストールから説明していきたいと思います。
Bazelのインストール
Jdk 8u111 Mac Os X X64 Dmg Iso
参考: https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html
JDK8のダウンロード(jdk-8u111-macosx-x64.dmgを手動でインストール)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
環境変数を設定
Tensorflowのダウンロード
Android版
参考: https://github.com/tensorflow/tensorflow/tree/r0.12/tensorflow/contrib/makefile#android
Android NDKのインストール
Bazelの設定ファイルにAndroid SDKとNDKのパス指定
git diff
訓練済みモデルのダウンロード
Androidのビルドとapkのインストール
Jdk-8u211-macosx-x64.dmg
https://www.youtube.com/watch?v=Z7XcoigrEbA
Androidスタンドアローン版
あとはAndroidStudioでプロジェクトを開いてビルドするだけです。
iOS版
参考: https://github.com/tensorflow/tensorflow/tree/r0.12/tensorflow/contrib/makefile#ios
参考:TensorFlowにiOSサポートが追加されたそうなので試してみた
依存関係のインストール
依存関係とTensorflowをビルド
macOS Sierraの人はこちらを参考に.shファイルを編集してから実行してください
訓練済みモデルのダウンロード
あとはxCodeでtensorflow/contrib/ios_examples/cameraを開いてビルドするだけです。
https://www.youtube.com/watch?v=Sl8MPeWVi2I
日本語化
Jdk 8u111 Download
英語のままだとわかりにくいのでリソースを日本語化しました。
imagenet_comp_graph_label_strings.txt を置き換えるだけで認識結果を日本語化出来ます。
Android日本語化
で置き換えることで、認識結果を日本語化出来ます。
iOS日本語化
XcodeでCameraExampleViewController.mmを開く
で置き換えることで、認識結果を日本語化出来ます。
色々認識してみよう!
機械学習というと、文字とグラフとにらめっこなイメージがありますが、手元の端末にまで落ちてきて、それがリアルタイムで動くと『おおっ!』という感動があります。
今回のデモでは、1000クラスの分類が出来ます。そのうち200クラスぐらいが犬種です。犬検出器です。
僕の端末(Galaxy S6)では、1frame 300msで処理できていました。皆さんの端末ではどうですか?
https://www.youtube.com/watch?v=XK7EuHrkUU4
職業プログラマーは如何に機械学習に立ち向かうのか
機械学習やってみたいけど、数学苦手って方もいらっしゃるかと思います。それなら、コードからボトムアップで理解してみるのは如何でしょうか。
tensorflow/example/tutorialには豊富なチュートリアルがあります。
tensorflow/modelsでは、色んな機械学習がコードが教師データ付きで公開されています。
最近は論文とともに、教師データ+学習プログラム+デモという形でgithub上に公開してくれている研究者がたくさんいます。
http://www.gitxiv.com/ このサイトでは論文のabstract+githubのreadmeを一対として表示してくれるニュースサイトです。
ここを見ながら、興味深いテーマをgithubからcloneしてきて自分で学習させて、デモプログラムを走らせてみると面白いと思います。 '論文名 tensorflow' でgithub上で検索すると、tensorflow版の実装が簡単に出てきます。
機械学習のプログラムは多くがPythonです。機械学習の理論は非常に複雑ですが、Pythonの関数レベルまで落としこんであれば、入力と出力がわかっているブラックボックス関数として扱うことで、中身を知ることがなく使うことが出来ます。
慣れてくると1時間もあればFlaskを使ってAPIサーバー化して、Hubot経由でSlackから使えるようにも出来ます。
今週末にでもTensorflowに入門してみませんか?
As I have a million behavioural videos to analyse for my foraging project (slight exaggeration) I thought I would ask the Twitterverse for suggestions on which behavioural analysis software to use. I had several suggestions, but eventually settled on a program called JWatcher. To be honest, my main reason for choosing this program is that it is free, but also it seems like it will allow me to easily collect the data I need from the videos. I'll update on that once I've worked out how to use it!Anyway, the installation instructions for JWatcher are a little... vague, and confusing. They made what is in fact a very quick and easy process seem very daunting and time consuming. I bumbled my way through them, and finally worked out what I had to do to install the program and get it working. I thought I'd put together a little 'How to' guide, as when I googled there was nothing useful out there on the net. I hope someone else out there finds this useful.Note: these instructions work for OSX Yosemite and OSX El Capitan. I don't know if they work with different OSX versions, but I imagine the process will be the same.1. Download JWatcher. Go to the main JWatcher website, scroll to the bottom and click on 'Download JWatcher'.2. You will be prompted to enter your details and some info about your project. I'm pretty sure they don't do anything with this info, they just want to know how the program is being used.3. If you are installing on a Mac, and have OSX 10.7 or higher, select JWatcher Version 1.0 for Mac. This will then download a .jar file into your downloads folder (or wherever you have told your computer to download things to).4. If you try to open the .jar file you will get the following error message. Just click 'OK'. If you click 'More Info...' you will be taken to a useless Java website. Trust me. Note: a JDK is a Java Development Kit.5. Instead, go to the Java SE Development Kit download page. Accept the License Agreement, and select the Mac OSX download option.6. Again, go to your downloads folder and open the disk image for the JDK (jdk-8u111-macosx-x64.dmg). Double-click the box to install the package.7. Click through the installer, then eject the disk image (either in Finder or from the desktop).8. Now we can go back to the downloads folder and open the .jar file (jwatcher-mac.jar).9. Click through the JWatcher installer. By default it will install the program to your Applications folder. You can choose a new location if you so desire.10. Now to actually open JWatcher. There should now be a folder in Applications called 'JWatcher'. In there is a file called 'JWatcher'. This isn't actually the program. To open and run JWatcher you need to double-click the 'startjw' file. This will run a piece of code in Terminal, which then opens JWatcher.11. Ta-da! Now you have JWatcher installed and ready to go!I really hope this was helpful!