1. 程式人生 > >【TensorFlow學習筆記】3:認識TensorBoard視覺化計算圖和計算結點

【TensorFlow學習筆記】3:認識TensorBoard視覺化計算圖和計算結點

學習《深度學習之TensorFlow》時的一些實踐。


TensorBoard是一個日誌展示系統,在Session中使用tf.summary中的API將日誌儲存在日誌檔案中,然後通過TensorBoard服務在瀏覽器中就可以讀取這些日誌,檢視圖形化後的資訊。

對線性迴歸做視覺化

上篇的線性迴歸,這裡對預測值Z和損失cost兩個計算結點分別用直方圖和標量形式視覺化。而計算圖預設就會顯示,無需設定。

import tensorflow as tf
import numpy as np

"""生成樣本"""
X_train = np.linspace(-1, 1, 100
) Y_train = 2 * X_train + np.random.randn(*X_train.shape) * 0.2 - 0.1 """建立模型""" X = tf.placeholder("float") Y = tf.placeholder("float") W = tf.Variable(tf.random_normal([1]), name="weight") b = tf.Variable(tf.zeros([1]), name="bias") Z = tf.multiply(X, W) + b tf.summary.histogram('z', Z) # 預測值以直方圖形式顯示
cost = tf.reduce_mean(tf.square(Y - Z)) tf.summary.scalar('loss_function', cost) # 損失以標量形式顯示 optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost) """迭代訓練模型""" init = tf.global_variables_initializer() train_epochs = 20 display_step = 2 with tf.Session() as sess: sess.
run(init) merged_summary_op = tf.summary.merge_all() # 合併前面定義的所有的summary summary_writer = tf.summary.FileWriter('log/yeq2x', sess.graph) # 用於寫summary for epoch in range(train_epochs): for (x, y) in zip(X_train, Y_train): sess.run(optimizer, feed_dict={X: x, Y: y}) # 在每個epoch都生成summary summary_str = sess.run(merged_summary_op, feed_dict={X: x, Y: y}) # 然後將summary寫入檔案 summary_writer.add_summary(summary_str, epoch) print("完成,cost=", sess.run(cost, feed_dict={X: X_train, Y: Y_train}), "W=", sess.run(W), "b=", sess.run(b))

執行完成後,在日誌目錄下就形成了相應的日誌檔案,去到其上級目錄,在命令列下啟動TensorBoard服務:

tensorboard --logdir ./yeq2x

可以看到:

TensorBoard 1.10.0 at http://PC-20180324TODF:6006 (Press CTRL+C to quit)

使用Chrome或者Firefox開啟這個URL即可:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

相關學習資源

Tensorboard 詳解(上篇)