代码写的再好,没有图别人也不知道好在哪。
我们在使用tensorflow的时候,使用tensorboard可以直观的看到我们的网络结构,甚至它可以计算卷积和池化的维度(我不知道是不是因为我已经运行了一遍,所以维度显示出来了)
首先是开启tensorboard的代码:
tensorboard --ogdir="F:\workspaces\pycharm\face_diagnose\TencentTensorFlow\CNN\tmp\mnist_logs"
因为我用pip下载了tensorborad,所以可以直接用这个命令。也建议这样做,因为每次都到tensorborard下非常麻烦。
然后我们在我们的代码中启用tensorboard就可以了:
# tensorboard上进行数据可视化
tf.summary.scalar("loss", loss)
tf.summary.scalar("accuracy", accuracy)
merged_summary_op = tf.summary.merge_all()
summary_writer = tf.summary.FileWriter('./tmp/mnist_logs')
这里我添加了两个scalar,分别是loss和accuracy.然后添加一个op:tf.summary.merge_all()
接着新建一个 tf.summary.FileWriter(路径) 这里的路径就是上面我启动tensorboard里,--logdir的路径
我们在开启session之后,首先将对应的网络结构保存下来:
summary_writer.add_graph(sess.graph)
然后我们在Session中run这个我们的op就可以了:
s = sess.run(merged_summary_op,feed_dict={x: batch[0], y_real: batch[1], keep_prob: 1.0})
summary_writer.add_summary(s, i)
要注意的是,每次run之后,要用writer增加一个记录。传入两个参数(1,2).参数1是run之后的返回值。注意,如果没有添加scalar或其他的东西,是没有返回值的。
因为我这里不能截图,所以效果图暂时不放了,等之后条件允许了在补充。