總是忘。記錄一下,方便自己查看。tensorboard版本:1.13.X
代碼如下:
......代碼省略.....
# region8、收集要顯示的變量
loss_scalar = tf.summary.scalar("loss", loss)
acc_scalar = tf.summary.scalar("acc", accuracy)
# endregion
# region9、合併所有變量op
merged = tf.summary.merge_all()
# endregion
......代碼省略.....
with tf.Session() as sess:
......代碼省略(開啓線程+初始化變量).....
if isTrain:
# 創建一個event文件實例
train_writer = tf.summary.FileWriter("./tmp/summary/train", graph=sess.graph)
valid_writer = tf.summary.FileWriter("./tmp/summary/valid")
# 循環一遍的訓練批次
train_batch_idxs = int(x_train_num / train_batch_size)
step = 0
for i in range(E_poch):
# region一、訓練(train)
for j in range(train_batch_idxs):
summary = sess.run(merged,feed_dict={x: value, y_true: label_onehot, keep_prob: 0.5})
step = step + 1
train_writer.add_summary(summary, step)
# region二、驗證(valid)
if (i + 1) % 10 == 0:
valid_num = 0 # 這裏可以改成valid_num = step(記一下,下面會說)
# region每運行完10遍,執行一次驗證集
for n in range(x_valid_num):
sum_accuracy_scalar, sum_loss_scalar =
sess.run([acc_scalar, loss_scalar],feed_dict={x: valid_value, y_true: valid_label, keep_prob: 1.0})
valid_writer.add_summary(sum_accuracy_scalar, n)
valid_writer.add_summary(sum_loss_scalar, n)
else:
......代碼省略(test).....
......代碼省略(測試).....
文件夾結構如圖
:
生成tensorboard
步驟一:進入pycharm最下面的Terminal (終端),系統cmd也行(前提配置環境變量),anaconda3的prompt也可以。
步驟二:輸入命令:tensorboard --logdir=./tmp/summary --host=127.0.0.1
步驟三:打開Chrome,輸入:127.0.0.1:6006,可以看到左下角兩個都加載進來了
附:接代碼裏的
valid_num = 0 # 這裏可以改成valid_num = step(記一下,下面會說)
(如果沒看,請用Ctrl+F查找)
現象:我們可以看到上圖裏的valid只存在於0-2k(橫座標)
之內。但是由於我們每隔10次運行一次驗證集。所以其應該顯示如下,而不是全部擠在一快。
解決辦法:也就是上面說的:valid_num = 0
改成valid_num = step
就可以了。
如果沒改的話:將下圖左下角切換到RELATIVE,就可以了
上述打開tensorboard
的命令對我個人有效。這個東西很玄學,多試幾下就出來了。