通過Tensorboard查看模型的參數、損失值等量值的變化。
import tensorflow as tf
import numpy as np
def linear_regression():
# 1、準備數據
x = tf.random_normal(shape=[100, 1])
y_true = tf.matmul(x, [[0.8]]) + 1.2
# 2、創建迴歸模型
weights = tf.Variable(initial_value=tf.random_normal(shape=[1, 1]))
bias = tf.Variable(initial_value=tf.random_normal(shape=[1, 1]))
y_predict = tf.add(tf.matmul(x, weights), bias)
# 3、構造損失函數
error = tf.reduce_mean(tf.square(y_predict - y_true))
# 4、創建優化器,優化損失
optimizer = tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(error)
init = tf.compat.v1.global_variables_initializer()
# 第二步:收集變量(包括標量及高維變量)
tf.summary.scalar("error", error)
tf.summary.histogram("weights", weights)
tf.summary.histogram("bias", bias)
# 第三步:合併變量
merged = tf.summary.merge_all()
with tf.compat.v1.Session() as sess:
sess.run(init)
# 第一步:創建事件文件,寫明存儲事件文件的目標路徑
file_writer = tf.summary.FileWriter(r'C:\Users\User_name\Desktop\Con-LSTM\linear', graph=sess.graph)
for i in range(100):
sess.run(optimizer)
print("weights = %f\t bias = %f\t error = %f" % (weights.eval(), bias.eval(), error.eval()))
# 第四步:運行合併變量操作
train_summary = sess.run(merged)
# 第五步:將每次迭代後的變量寫入事件文件
file_writer.add_summary(train_summary, i)
return None
if __name__ == "__main__":
linear_regression()
之後在cmd中輸入:tensorboard --logdir=“C:\Users\User_name\Desktop\Con-LSTM\linear”(即事件文件所在路徑),打開Chrome,輸入http://localhost:6006/ 即可打開tensorboard查看量值。