小さなエンドウ豆

まだまだいろいろ勉強中

Tensorflow入門

最近

最近は就職活動で忙しくしていたためなかなかブログを書くことができませんでした。
これから頑張って自分のスキルアップのため頑張りたいと思います。。。

Tensorflow

しかし就活中ながら隙間の時間に勉強会などに参加するようには心がけていた。そこでTensorflowの話題が上がった。私もずっとさわってみたいと興味はあったのだが何もしていない状態だったので今回入門してみることにした。

まずAnacondaのvirtualenvを使ってTensorflow用の環境を作る。 pythonのバージョンは最新?の3.5.1を使うことにした。

$ pip install virtualenv
$ conda create --name tensorflow_env python=3.5.1
$ source activate tensorflow_env

次にpipを使ってTensorflowをインストールするのだが...

(tensorflow_env)$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py3-none-any.whl

…

Collecting setuptools (from protobuf==3.0.0a3->tensorflow==0.6.0)
  Using cached setuptools-20.9.0-py2.py3-none-any.whl
Installing collected packages: six, setuptools, protobuf, numpy, tensorflow
  Found existing installation: setuptools 20.7.0
Cannot remove entries from nonexistent file /home/nori/anaconda3/envs/tensorflow/lib/python3.5/site-packages/easy-install.pth

調べてみるとsetuptoolsがコンフリクトしているのが問題らしくconda removeでsetuptoolsをリムーブすれば大丈夫かと思いいろいろ試行錯誤してみたもののうまく行かず…

結局2系でTensorflowを使ってみることにした。

同じ要領でpython2.7.11の環境を作りTensorflowをインストールする。

$ conda create --name tensorflow_env2 python=2.7.11
$ source activate tensorflow_env2
(tensorflow_env2)$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl 

インスト−ルが完了すると早速インポートして試してみる

(tensorflow_env2)$ python
>>> import tensorflow
>>>

成功!
また最近jupyter notebookを使ってコードを管理しているためTensorflowのテストコードをipynbのファイルで残したいと思った。
そのままではjupyterでインポートはできなかったため調べてみるとカーネルを設定しなければならないらしい。pyenv-virtualenv + TensorFlow 環境設定覚書を参考にしてみる。
Tensorflow用のカーネルを追加する。

$ cd ~/.ipython/kernels
$ mkdir tensorflow && cd tensorflow
$ vim kernel.json
{
  "display_name": "TensorFlow (Python 2)",
  "language": "python",
  "argv": [
    "/home/User/anaconda3/envs/tensorflow_env2/bin/python",
    "-c", "from IPython.kernel.zmq.kernelapp import main; main()",
    "-f", "{connection_file}"
  ],
  "codemirror_mode": {
    "version": 2,
    "name": "ipython"
  }
}

これでjupyterでもTensorflowが使えた!
ちなみにテストコードはこんな感じ

import tensorflow as tf

hello = tf.constant("Hello Tensorflow!")
a = tf.constant(10)
b = tf.constant(20)
sess = tf.Session()

print sess.run(hello)
print sess.run(a+b)

今後の課題

今後の課題をいかに列挙しておく

  • Python3でなぜTensorflowが使えなかったのか?
  • jupyter notebookで作成したノートブックをはてなブログに埋め込めないのか
  • Tensorflowを使った応用プログラムの作成

これらのことについて今週中に頑張りたい

追記

linuxでpython3.5用のTensorflowをインストールするためにはTensorflowの公式ページにあった以下のコマンドを打てばよかった
(tensor_env)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl