icon 2016/06/16 [Tensorflow]インストール構築・MNIST実行
何かの話題の「Tensorflow」をインストール

OSX El CapitanやPython関連で色々依存しているみたいで、Python2.7(OSX標準)でどハマり

最終的に Python3.5 + pip 8.1.2で動作しました

Tensorflow Download and Setup


Python確認


OSX El Capitan 標準でインストールされている Python2.7
$ python --version
Python 2.7.10

brew を利用して Python3.5 をインストールしてみる
(Phthon全般、brewで管理した方が良いかもしれない)

pyenvインストール


pyenvは複数バージョンのPythonを管理する
今回は、Python3.5.1をインストール
$ brew install pyenv
$ xcode-select --install
$ pyenv install 3.5.1
$ pyenv global 3.5.1
$ pyenv install anaconda3-2.4.0
$ brew install pyenv-virtualenv
$ pyenv rehash

pyenv確認


$ pyenv versions
  system
  3.5.1
  3.5.1/envs/py351tensorflow
  anaconda3-2.4.0
* py351tensorflow (set by /Users/yoo/.pyenv/version)

pipのインストール


$ sudo easy_install pip

Virtualenvインストール


$ sudo pip install --upgrade virtualenv
$ virtualenv --system-site-packages ~/tensorflow

Tensorflowインストール


Pytnon2 + Tensorflow 0.6.0


$ sudo easy_install --upgrade six
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py2-none-any.whl

Pytnon3 + Tensorflow 0.9.0


$ sudo easy_install --upgrade six
$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0rc0-py3-none-any.whl

Tensorflow有効


$ source ~/tensorflow/bin/activate
(tensorflow) xxxx:~ xxx$
(tensorflow) と表示されればOK
activate後の pythonコマンドは ./tensorflow/bin/python に切り替わっている

Hello World実行


Tensorflowをインポートできるかテスト
import tensorflow as tf
import multiprocessing as mp

core_num = mp.cpu_count()
config = tf.ConfigProto(
    inter_op_parallelism_threads=core_num,
    intra_op_parallelism_threads=core_num )
sess = tf.Session(config=config)

hello = tf.constant('hello, tensorflow!')
print(sess.run(hello))

a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a+b))

python hello-tf.py 

実行エラー


.....
  File "/Users/yoo/tensorflow/lib/python3.5/site-packages/tensorflow/core/framework/graph_pb2.py", line 6, in <module>
    from google.protobuf import descriptor as _descriptor
ImportError: No module named 'google'
.....
前にインストールした(?)pipモジュールが悪さしているようなので、「protobuf」を再インストール(pip3で)

$ sudo pip uninstall protobuf
$ sudo pip3 install protobuf

MNIST動作確認


MNIST For ML Beginnersで画像認識サンプルを動かしてみる
git clone --recurse-submodules https://github.com/tensorflow/tensorflow

MNISTは「tensorflow/tensorflow/tensorflow/examples/tutorials/mnist」(2016/06/20現在)にあるので、メインプログラム「fully_connected_feed.py」を実行する

(tensorflow) xxxxx $ python fully_connected_feed.py 
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
Step 0: loss = 2.31 (0.006 sec)
Step 100: loss = 2.17 (0.002 sec)
Step 200: loss = 1.91 (0.002 sec)
Step 300: loss = 1.61 (0.002 sec)
Step 400: loss = 1.30 (0.002 sec)
Step 500: loss = 0.84 (0.002 sec)
Step 600: loss = 0.85 (0.002 sec)
Step 700: loss = 0.64 (0.002 sec)
Step 800: loss = 0.63 (0.002 sec)
Step 900: loss = 0.49 (0.002 sec)
...
途中でエラーにならなければOK(ここまで道のりが長かった・・・)
多分、Phthon2系だと現行のMNISTサンプルはソース修正しないと動かないと思われます。

TensorBoard


tensorboardコマンドでウェブサーバを起動でき、ブラウザで可視化できる
$ tensorboard --logdir=/Users/yoo/tensorflow/tensorflow/tensorflow/examples/tutorials/mnist/data

http://localhost:6006/ にアクセスすると TensorBoard の画面が表示される


このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ