はじめに
Tensorflowはチュートリアルであっても本質的に何をやっているのかの理解が難しい。
中の状態を確認しながら進めたい
ちょうど中身を確認しながら進めているウェブ記事()があったので
これを自分のところでも動かしたいと考えたのですが、簡単には動きませんでした。
- TensorFlowのチュートリアルをやってみる(1)
http://www.mwsoft.jp/programming/tensor/tutorial_beginners.html
本記事は、どうやって自分の環境で動かしたかを記したものになります。
Tensorflowの本質に関しては、新しい情報はなく、実施に関する情報です。
私の環境
- OS: Mac OS X El Capitan (10.11)
- Versions: python2.7.10 tensorflow0.9.0, numpy1.11.3
- Pythonはpyenvで構築した環境を使用し、OSのものは使いませんでした。
チュートリアル実施
以下の記事を参考にチュートリアルを進めました。
各節は参考にしたページの節に合わせてあります。
- TensorFlowのチュートリアルをやってみる(1)
http://www.mwsoft.jp/programming/tensor/tutorial_beginners.html
インストール
- pythonはpyenvでインストール
- tensorflowはpipでインストール *1
- matplotlibもpipでインストール(pip install matplotlib) *2
*1
以下の本家のページが参考になりました。
https://www.tensorflow.org/get_started/os_setup#pip_installation
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.1-py3-none-any.whl
sudo pip install --upgrade $TF_BINARY_URL
*2
backendがmacosxだと動作しなかったのでTkAppに変更してあります。
詳しい記事はこちら。
http://qiita.com/Kodaira_/items/1a3b801c7a5a41c9ce49
変更前:backend : macosx
変更後:backend : Tkagg
データの読み込みと確認
plt.imshow(mnist.validation.images[0].reshape(28, 28), cmap = cm.Greys_r)
のあとにplt.show()
を実行する必要があります。このコマンドを実行することで、別ウィンドウに画像が表示されます。
以降も画像表示の際にはplt.show()
が必要ですのでご注意を。
>>> from matplotlib import pylab as plt
>>> import matplotlib.cm as cm
>>> plt.imshow(mnist.validation.images[0].reshape(28, 28), cmap = cm.Greys_r)
<matplotlib.image.AxesImage object at 0x11a540290>
>>> plt.show() # ここ
<ここで画像が別ウィンドウで表示される>
1 + 2 = 3
特に問題なく動作しました。
y = x * w
私の環境では、以下のコードでは動きませんでしたので、以下のように変更しました。
変更前:sess.run(tf.initialize_all_variables)
変更後:sess.run(tf.initialize_all_variables())
画像を表示させる場合はplt.show()
を忘れないでください。
正答率の確認
特に問題なく動作しました。
チュートリアルのコードを動かす
特に問題なく動作しました。
まとめ
流せるようになったので、まださわりの部分だけかと思いますが、ある程度、挙動の詳細を追えるようになりました。
今後は内容を詳細に追ってみたいと思います。
参考
-
TensorFlow - Download and Setup ー Pip installation
https://www.tensorflow.org/get_started/os_setup#pip_installation -
pyenvとvirtualenvで環境構築した時にmatplotlib.pyplotが使えなかった時の対処法
http://qiita.com/Kodaira_/items/1a3b801c7a5a41c9ce49