本人使用环境win10+Anaconda-python3.6 。我采用的时tensorflow1.13.1版本的tensorflow。
读者如果想安装同样版本的tensorflow 可以参考我之前的博客:https://blog.csdn.net/qq_38644840/article/details/85250722
如果我们想要在深度学习的模型训练过程中看某些量随着训练变化的情况我们可以定义一些标量(scalar)来观察它的变化
import tensorflow as tf
import numpy as np
out = ...
loss = tf.reduce_mean(tf.abs(out-y))
#这里我们想看loss随着训练迭代次数变化而变化的情况就需要定义一个summary标量
tf.summary.scalar("loss", loss)
#定义完成我们需要看的标量之后我们需要将所有标量合并到一起
summary_merge = tf.summary.merge_all()
#接下来我们要定义我们的日志文件的记录地址,在定义地址之前要开启会话(创建一个session)
#一般我们除了保存标量还会保存一个网络图
sess = tf.InteractiveSession()
f_summary = tf.summary.FileWriter(logdir="./logs/log1", graph=sess.graph)
#开始训练
for epoch in range(epoches):
for x_train_a,x_train_b, y_train_a in minibatches(train_ref, train_dis,train_labels,
batch_size, shuffle=False):
_,err=sess.run([train_op,loss], feed_dict={x_ref: x_train_a/255,
x_dis:x_train_b/255,y: y_train_a})
train_loss += err; n_batch += 1
#将标量转换成Summary 对象
summary = tf.Summary(value=[tf.Summary.Value(tag="loss",
simple_value=train_loss/n_batch)])
#将summary写进日志文件中
f_summary.add_summary(summary=summary, global_step=epoch)
在编译器执行训练文件后我们能看到在工程的log1文件夹下有下面这些文件
我们需要知道这个文件的绝对路径如:H:\\MyProject\\logs\\log1。注意:这里采用的双斜杆或者直接采用反斜杠也是可以的
我们打开CMD 在命令执行框输入 tensorboard --logdir=H:\\MyProject\\logs\\log1
正常情况下会出现如下图
将红色框中的本地链接放到浏览器中打开如出现无法打开的情况如下图所示,可以更改一个host端口。
在上面的命令后面添加 :--host=127.0.0.1
接下来我们将看到:
再把这个链接放到浏览器中打开就能看到我们训练的loss随着epoch变化的情况