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


要約

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

はじめに

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

〔TensorFlow〕IRISを3行の変更でTensorBoardに対応させる

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

  • EVENTS

     

結論

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