softmax回帰 のグラフをTensorboard でグラフ化する

softmax をグラフ化するサンプルです。 初めてTensorboard を使用する場合の勉強、ひな形として使用してください。

スポンサーリンク


スポンサーリンク

サンプルコード

以下サンプルコードです。

関数を定義する。

Python バージョン:Python2.7
OSバージョン:Ubuntu 16.04.2
import tensorflow as tf 

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

#クラス数。要するに0~9
NUM_CLASSES = 10

#処理するイメージ数の縦横サイズ
IMAGE_SIZE = 28

#ピクセル数
IMAGE_PIXELS = IMAGE_SIZE*IMAGE_SIZE

#プレイスホルダーを定義。浮動小数点の2Dテンソルを定義。Noneで任意の長さを取ることを宣言
ph_x = tf.placeholder(tf.float32, [None, IMAGE_PIXELS])

#クラス、ラベル(正解)に関するプレイスホルダを定義
ph_y = tf.placeholder(tf.float32, [None, NUM_CLASSES])

#各ベクタに対する重みをピクセル数分作成
W = tf.Variable(tf.zeros([IMAGE_PIXELS, NUM_CLASSES]))

#クラス数分のバイアスを定義
b = tf.Variable(tf.zeros([NUM_CLASSES]))

#モデル、パーセプトロンの定義
y = tf.nn.softmax(tf.matmul(ph_x, W) + b)

#損失(あるいはコストとも呼ばれる)を定義。交差エントロピー(Cross Entropy)を使用。これを小さくするのが目標。
#reduce_sumで全体を加算。
ce = -tf.reduce_sum(ph_y * tf.log(y))

#ceを最小化するように訓練を定義(train step) 勾配降下法を使用。
ts = tf.train.GradientDescentOptimizer(0.01).minimize(ce)

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    batch_images, batch_labels = mnist.train.next_batch(1000)
    sess.run(ts, feed_dict={ph_x:batch_images, ph_y:batch_labels})
    tf.summary.FileWriter('/tmp/logfile', graph=sess.graph)
    tf.summary.scalar('cross_entropy', ce)

実行手順

(1)Pythonコードの実行

Pyton インタープリタから上記のコードを実行します。実行結果は以下のディレクトリに保存されます。
/tmp/logfile
ディレクトリは事前に作成しておいてください。このディレクトリを変更したい場合は、ソース内の該当の箇所を好きなディレクトリに変更してください。
コードがエラーなく実行が終了したら、以下のようなファイルが生成されていることを確認してください。
# ls /tmp/logfile/
events.out.tfevents.1497791084.username-pcname
これがグラフの元となるデータです。もしファイルが生成されていない場合は実行に失敗しています。コードや実行結果を再確認してください。

(2)Tensorboard 実行

ターミナルから以下のコマンドを実行します。上記のコードを実行したのと同じPC上で実行します。
# tensorboard --logdir=/tmp/logfile
Starting TensorBoard 47 at http://0.0.0.0:6006
(Press CTRL+C to quit)

(3)ブラウザから実行確認

同じPC上のブラウザから 127.0.0.1:6006 へアクセスします。
その後[GRAPHS]を選択します。これで 1+1 のグラフが表示されるはずです。

エラー、表示されない場合の対応

Graph visualization failed: TypeError: rawNodes is undefined で tensorboard のグラフが表示されない

tensorboard が表示されない場合の対処

TensorboardでNo graph definition files were found のエラー

スポンサーリンク

[Tensorboard サンプル一覧へ戻る]