[TensorFlow] TensorBoardを動作させたいときはpipでインストールする

# 要約
+ TensorFlowは、Anacondaのcondaコマンドでインストールするよりも、pip2/pip3でインストールしたほうが、TensorBoardがきちんと動作する。

# はじめに
前回、Anaconda環境上にcondaコマンドで構築したTensorFlowを動作させ、TensorBoardに学習状況のグラフを表示させてみました。

[〔TensorFlow〕IRISを３行の変更でTensorBoardに対応させる](http://qiita.com/olympic2020/items/87a21537198c3f353756)

Anaconda環境上にcondaコマンドで環境構築すると、TensorBoardを動作させるとリソースが見つからずエラーが発生していました。

```
WARNING:tensorflow:IOError [Errno 2] No such file or directory: '/home/ubuntu/anaconda3/lib/python3.5/site-packages/tensorflow/tensorboard/webcomponentsjs/webcomponents-lite.min.js' on path /home/ubuntu/anaconda3/lib/python3.5/site-packages/tensorflow/tensorboard/webcomponentsjs/webcomponents-lite.min.js
WARNING:tensorflow:IOError [Errno 2] No such file or directory: '/home/ubuntu/anaconda3/lib/python3.5/site-packages/tensorflow/tensorboard/dist/bazel-html-imports.html' on path /home/ubuntu/anaconda3/lib/python3.5/site-packages/tensorflow/tensorboard/dist/bazel-html-imports.html
WARNING:tensorflow:IOError [Errno 2] No such file or directory: '/home/ubuntu/anaconda3/lib/python3.5/site-packages/external/dist/bazel-html-imports.html' on path /home/ubuntu/anaconda3/lib/python3.5/site-packages/external/dist/bazel-html-imports.html
```
あれこれ、環境設定etc.をいじればどうにかなるのかもしれませんが、それでは、インストールが楽にできるというTensorFlowのメリットがなくなってしまいます。
どうにかならないものかと、pip/pip3でTensorFlow環境を構築し、TensorBordの動作を確認してみました。

# インストール
+ **環境**
    - AWS EC2
    - Ubuntu 16.04
    - AMI: ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20161020 (ami-0567c164)
    - Python: 3.5.2
+ **TensorFlow**
    - Ubuntu/Linux 64-bit, CPU only, Python 3.5
+ **pipでTensorFlowをインストール**
    
    ```
    $ sudo apt-get -y update
    $ sudo apt-get -y install python3-pip python-dev
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0-cp35-cp35m-linux_x86_64.whl
    $ sudo -H pip3 install --upgrade $TF_BINARY_URL
    ```

# サンプルプログラム

```HelloTensorFlow.py
# -*- coding: utf-8 -*-
"""
Hello TensorFlow
"""
import tensorflow as tf

x = tf.constant(1.0, name='input')
w = tf.Variable(0.8, name='weight')
y = tf.mul(w, x, name='output')
y_ = tf.constant(0.0, name='correct_value')
loss = tf.pow(y - y_, 2, name='loss')
train_step = tf.train.GradientDescentOptimizer(0.025).minimize(loss)

for value in [x, w, y, y_, loss]:
    tf.scalar_summary(value.op.name, value)

summaries = tf.merge_all_summaries()

sess = tf.Session()
summary_writer = tf.train.SummaryWriter('log_simple_stats', sess.graph)

sess.run(tf.initialize_all_variables())
for i in range(100):
    summary_writer.add_summary(sess.run(summaries), i)
    sess.run(train_step)
sess.close()
```

# pip/pip3でインストールしたTensorFlow環境で実行＆結果
pip/pip3でTensorFlowをインストールした場合は、AnacondaでTensorFlowをインストールした場合と比べてみると、TensorBoardにアクセスしても、リソース不足のエラーはでません。EVENTS、GRAPHSの表示が正常です。

+ **TensorFlowのプログラムを実行**
    
    ```
    $ cd work
    $ python3 HelloTensorFlow.py
    ```
+ **TensorBoardを起動**

    ```
    ubuntu@ip-172-31-24-52:~/work$ tensorboard --logdir=log_simple_stats
    ```
+ **コンソールログ**
    
    ```
    ubuntu@ip-172-31-24-52:~/work$ tensorboard --logdir=log_simple_stats
    Starting TensorBoard b'29' on port 6006
    (You can navigate to http://172.31.24.52:6006)
    [03/Nov/2016 14:35:46] "GET / HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /webcomponentsjs/webcomponents-lite.min.js HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /lib/css/global.css HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] code 404, message Not Found
    [03/Nov/2016 14:35:46] "GET /dist/bazel-html-imports.html HTTP/1.1" 404 -
    [03/Nov/2016 14:35:46] "GET /dist/tf-tensorboard.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /polymer/polymer.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /iron-icons/iron-icons.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /paper-tabs/paper-tabs.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /paper-dialog/paper-dialog.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:46] "GET /paper-checkbox/paper-checkbox.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:47] "GET /paper-toolbar/paper-toolbar.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:47] "GET /paper-button/paper-button.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:47] "GET /paper-header-panel/paper-header-panel.html HTTP/1.1" 200 -
    [03/Nov/2016 14:35:47] "GET /polymer/polymer-mini.html HTTP/1.1" 200 -
    
    ・・・
    
    ```
+ **GRAPHS**
    ![graphs.png](https://qiita-image-store.s3.amazonaws.com/0/107056/16f4c460-0906-b983-64e8-b19289e5551b.png)

+ **EVENTS**
    ![events_1.png](https://qiita-image-store.s3.amazonaws.com/0/107056/077f6f2b-64d8-86cc-fc20-b615f4e80d5c.png)
    
    　![events_2.png](https://qiita-image-store.s3.amazonaws.com/0/107056/a80d3994-5e74-d710-6423-5f1dfd9374c7.png)

# 結論
TensorFlowは、pip/pip3でインストールして利用するべし。