第一步,用
import tensorflow as tf
# 第一步:清除default graph 和不断增加的节点
tf.reset_default_graph()
#第二步:设置logdir路径,计算图信息保存在这个日志里
logdir = 'D:/log'
# 第三步,定义简单的计算图
with tf.variable_scope("try"):
w = tf.Variable(tf.random_normal([12, 1], stddev=0.01), name="W")
b = tf.Variable(1.0, name='b')
def model(x, w, B):
return tf.matmul(x, w)+b
pred = model(x,w,b)
with tf.name_scope('LossFunction'):
loss_function = tf.reduce_mean(tf.pow(y-pred,2))
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)
###第4步:画图形
###画图形
image_shape_input = tf.reshape(x,[-1,28,28,1])#输入为x,28*28维的黑白(1)图,输入多少不确定
tf.summary.image('input',image_shape_input,10)#该函数输入四维数据,10表示最多显示10个
###画直方图
tf.summary.histogram('pred',pred)
###将loss以标量显示
tf.summary.scalar('loss',loss_function) #记录损失值loss
###第5步:合并所有summary
merged = tf.summary.merge_all() # 合并所有需要记录的摘要日志文件
#生成一个写日志的writer,并将当前的Tensorflow计算图写入日志
writer = tf.summary.FileWriter(logdir,sess.graph)
# 只画图,用这个,运行tf并画loss,用下面注释中的代码
writer = tf.summary.FileWriter(logdir,tf.get_default_graph())
'''
with tf.Session() as sess:
init = tf.global_variables_initializer() #初始化变量
sess.run(init) #初始化变量
for epoch in range(50):
for xs, ys in zip(x_data, y_data):
xs = xs.reshape(1, 12)
ys = ys.reshape(1, 1)
### 第6步:生成summary,并写入文件
_,summary_str, loss = sess.run([optimizer,merged, loss_function], feed_dict={x: xs, y: ys})
y_pre = sess.run(pred,feed_dict={x:xs})
writer.add_summary(summary_str, epoch) #加到摘要信息里,一共50次
writer.close()
'''
定义好代码之后,在logdir的文件夹下打开终端,输入
tensorboard --logdir=./
如果报错端口被占用,可以更改端口号:
tensorboard --logdir=./ --port=8008
然后,终端会显示如下信息:
TensorBoard 0.4.0rc3 at http://amax2:8008 (Press CTRL+C to quit)
复制链接到火狐,谷歌浏览器打开即可。
如果想画loss图,代码执行代码中批量注释掉的代码
当在windows使用时,出错’tensorboard’不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法
第一步:C:\Users\nss\PycharmProjects\test\venv\Scripts
在python的tensorflow库下打开cmd,输入
activate tensorflow
第二步,转到图所在的文件夹下
第三步:运行tensorflow
第四步:复制地址到谷歌或者火狐浏览器打开