Google がDeep Learningのプログラムとして TensorFlow を出しています。まずそのTutorialを試してみました。
TensorFlow
http://d.hatena.ne.jp/shu223/20160105/1451952796
こちらの方は、さらさらと10分で環境構築とテストをされたようですが、当方は多少てこずりました。まず、開発中のコードなのでバージョンアップする中でいろいろと整合性がとれなくなるのでしょう。
install
1. pip のインストール
1 |
$ sudo easy_install pip |
2. Virtualenv のインストール
1 |
$ sudo pip install --upgrade virtualenv |
3. Virtualenv 環境作成
Linux, Unixをやっている人からすると突っ込まれそうですが
~/Desktop/tensorflowに作ってみました。
1 |
$ virtualenv --system-site-packages ~/Desktop/tensorflow |
4. アクティベートします。コマンドプロンプトが (tensorflow)…$ に変わります
1 |
$ source ~/Desktop/tensorflow/bin/activate |
5. TensorFlow のインストール
1 |
(tensorflow) $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl |
現時点では0.8.0を使わないとこの後のMNISTでエラーになります。また、これはmac用です、Linuxは別のものになります。
0.9.0もあるようですが、あまり最新すぎるのも別のバグがありそうなので…
簡単なテストコード
環境がいまく設定されているか確認のためにしたのコードを書いて動作させてみます。
1+2を計算するコードです
test01.py
1 2 3 4 5 6 7 8 9 10 |
import tensorflow as tf x = tf.constant(1, name='x') y = tf.Variable(x + 2, name='y') model = tf.initialize_all_variables() with tf.Session() as session: session.run(model) print(session.run(y)) |
pythonで実行します。
1 2 |
(tensorflow) $ python test01.py 3 |
答えが「3」になりました。
MNIST のチュートリアル
MNIST For ML Beginners を試してみましょう。
1 |
$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow |
もしこのようなエラーが出たらGitをインストールしていない可能性があります。こちらからインストールしておきましょう。
1 |
xcrun: error: active developer path ("/Applications/Xcode6.4.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`) |
cloneしたtensorflowのツリーに fully_connected_feed.py がありますので、これを実行します。
Activateして、以下のパスに入って実行します。
tensorflow/examples/tutorials/mnist/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
(tensorflow) $ python fully_connected_feed.py Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes. Extracting data/train-images-idx3-ubyte.gz Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes. Extracting data/train-labels-idx1-ubyte.gz Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes. Extracting data/t10k-images-idx3-ubyte.gz Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes. Extracting data/t10k-labels-idx1-ubyte.gz Step 0: loss = 2.31 (0.011 sec) Step 100: loss = 2.13 (0.005 sec) Step 200: loss = 1.84 (0.005 sec) Step 300: loss = 1.45 (0.005 sec) Step 400: loss = 1.23 (0.005 sec) Step 500: loss = 0.81 (0.005 sec) Step 600: loss = 0.72 (0.005 sec) Step 700: loss = 0.64 (0.005 sec) Step 800: loss = 0.52 (0.005 sec) Step 900: loss = 0.44 (0.005 sec) Training Data Eval: Num examples: 55000 Num correct: 47670 Precision @ 1: 0.8667 Validation Data Eval: Num examples: 5000 Num correct: 4383 Precision @ 1: 0.8766 Test Data Eval: Num examples: 10000 Num correct: 8765 Precision @ 1: 0.8765 Step 1000: loss = 0.53 (0.014 sec) Step 1100: loss = 0.48 (0.090 sec) Step 1200: loss = 0.43 (0.005 sec) Step 1300: loss = 0.29 (0.005 sec) Step 1400: loss = 0.41 (0.005 sec) Step 1500: loss = 0.38 (0.005 sec) Step 1600: loss = 0.52 (0.005 sec) Step 1700: loss = 0.31 (0.005 sec) Step 1800: loss = 0.36 (0.005 sec) Step 1900: loss = 0.32 (0.005 sec) Training Data Eval: Num examples: 55000 Num correct: 49429 Precision @ 1: 0.8987 Validation Data Eval: Num examples: 5000 Num correct: 4541 Precision @ 1: 0.9082 Test Data Eval: Num examples: 10000 Num correct: 9056 Precision @ 1: 0.9056 (tensorflow) $ |
実行する度に多少変わりますが、90%程度の正解率のようです。
最初は、fully_connected_feed.pyを実行して様々なエラーが次から次と出たのでしたが、全ては最初に0.5.0をインストールしたせいで、git cloneしたものと整合性が取れていなかったからです。tensorflowをuninstallしてからやりなおせば嘘のようにすんなりできました。
Tensorboard
h20.aiのように結果をビジュアルにブラウザで確認できます。git cloneした中にtensorboardというのがありますがこれを使います。
一度学習すると、そのログが実行したファイルのディレクトリにあります。具体的には…/mnist/fully_connected_feed.py と同じディレクトリにdataというディレクトリがあり、gz, localというファイルができています。
Activateした後でこのdataディレクトリの絶対パスを指定してコマンドを打ちます。
1 2 3 |
(tensorflow) $ tensorboard --logdir=/Users/...../tensorflow/examples/tutorials/mnist/data ... (You can navigate to http://0.0.0.0:6006) |
このhttp://0.0.0.0:6006をChromeなどで開くとTensorBardという画面が表示されます。
「EVENTS」の「xentropy_mean」を開くと
更に、「GRAPH」タブで
ニューラルネットワークのヴィジュアライズされました。
References:
ディープラーニングの有名ライブラリ5種を最短距離で試す半日コース
知識ゼロからTensorFlowを使った機械学習で人工知能を作る