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 のエラー
スポンサーリンク