テンソルのながれ - らんだむな記憶で触れた機械学習のライブラリ「TensorFlow」を導入したい。http://tensorflow.org/tutorials/pdes/index.mdにあるようにPDE(Partial Differential Equation)の数値計算にも使えるからだ。前進Euler法もgradient descentによるhypothesisのlocal extremumの探索も基本的に同じだから応用できても不思議ではない。
TensorFlowで Hello Worldを動かしてみた&その解説 | Developers.IOに解説があった。AWS界隈で有名なクラスメソッド社の技術blogのようだ。(参考: 「うまいすしを、腹一杯。うまいすしで、心も一杯。」 | クラスメソッド株式会社)
さて、これを自分の環境に読み替えよう。
$ sudo easy_install pip $ sudo pip install virtualenv $ mkdir /home/samba/tensorflow $ virtualenv --system-site-packages /home/samba/tensorflow $ cd /home/samba/tensorflow $ source bin/activate
でvirtualenv内の環境を作ってみる。virtualenvは本質ではないが、環境は分けたいよーという声も聞いたので、今回はその流儀に倣ってみる。
コンテナ仮想化のdockerの場合、dockerでGUIアプリを動かしてみた - QiitaのようにもにょもにょしないとGUIアプリを起動できないっぽい。正確には良く分からないけど、コンテナ内で動いているプロセスの描画をX forwardingでXサーバに飛ばしている形か何かじゃないだろうか。別に詳細はどうでもいいのであまりggってないが。
virtualenvの仮想化がどういうタイプのものなのかよく分かっていないが(というか、python環境だけ別のとこに作って、そちらを参照しているだけに思えるが)、念のため簡単にGUIが立ち上がるのか見たい。
ということで、pythonで熱方程式の数値解析 - らんだむな記憶で作成したスクリプトを叩いてみたが、普通にplotのウィンドウが起動した。面倒くさいことはなにもないようだ。
ということで、TensorFlowを導入していこう。
クラスメソッド社の解説はMac向けのようなので、オフィシャルの解説を参照する: http://www.tensorflow.org/get_started/os_setup.md
どうせvirtualenvを使っているので、そのままバイナリ版を使うことにする。気に入らなければソースコードからビルドするなりすれば良い。CUDAのSDKは使っていないので、GPU版ではなくCPU版を使う。
(tensorflow)xxx@yyy:~/samba/tensorflow/$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
なんか微妙なwarningが出るがそんなもんなんだろう...。
Building wheels for collected packages: numpy Running setup.py bdist_wheel for numpy Stored in directory: /home/xxx/.cache/pip/wheels/b3/d0/9c/c860a697e3ea6929e396a5c55fc5aa2ed7413d24332a9c5299 Successfully built numpy Installing collected packages: six, numpy, tensorflow Found existing installation: six 1.5.2 DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project. Not uninstalling six at /usr/lib/python2.7/dist-packages, outside environment /home/samba/tensorflow Found existing installation: numpy 1.8.2 DEPRECATION: Uninstalling a distutils installed project (numpy) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project. Not uninstalling numpy at /usr/lib/python2.7/dist-packages, outside environment /home/samba/tensorflow Successfully installed numpy-1.10.1 six-1.10.0 tensorflow-0.5.0 /home/samba/tensorflow/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning
一応numpyのバージョンを確認しよう。
まずは、オリジナル。
$ python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy as np >>> np.version.version '1.8.2'
次はvirtualenv内のもの
(tensorflow)xxx@yyy:~/samba/tensorflow$ python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy as np >>> np.version.version '1.10.1'
しっかりバージョンが変わってますなぁ。
さて、動作確認。再びクラスメソッドさんのサンプルを使う。
まずはホスト(?)環境で。
xxx@yyy:~/samba/tensorflow/py_work/01_hello$ python -B hello.py Traceback (most recent call last): File "hello.py", line 2, in <module> import tensorflow as tf ImportError: No module named tensorflow
こちらの環境ではTensorFlowは見えないので怒られる。
次にvirtualenv側。
(tensorflow)xxx@yyy:~/samba/tensorflow/py_work/01_hello$ python -B hello.py I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 4 I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 4 hello, tensorflow! 42
おっ、動いたみたいね。
一応これで仮想環境へのTensorFlowの導入はいけた、ということだろう。
―――――・・・
ちょっとした都合で以下もやっておく。
(tensorflow)xxx@yyy:~/samba/tensorflow$ easy_install ipython