【TensorFlow学习笔记】3:认识TensorBoard可视化计算图和计算结点

版权声明:本文为博主原创学习笔记,如需转载请注明来源。 https://blog.csdn.net/SHU15121856/article/details/85048001

学习《深度学习之TensorFlow》时的一些实践。


TensorBoard是一个日志展示系统,在Session中使用tf.summary中的API将日志保存在日志文件中,然后通过TensorBoard服务在浏览器中就可以读取这些日志,查看图形化后的信息。

对线性回归做可视化

上篇的线性回归,这里对预测值Z和损失cost两个计算结点分别用直方图和标量形式可视化。而计算图默认就会显示,无需设置。

import tensorflow as tf
import numpy as np

"""生成样本"""
X_train = np.linspace(-1, 1, 100)
Y_train = 2 * X_train + np.random.randn(*X_train.shape) * 0.2 - 0.1

"""建立模型"""
X = tf.placeholder("float")
Y = tf.placeholder("float")

W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")

Z = tf.multiply(X, W) + b
tf.summary.histogram('z', Z)  # 预测值以直方图形式显示

cost = tf.reduce_mean(tf.square(Y - Z))
tf.summary.scalar('loss_function', cost)  # 损失以标量形式显示

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost)

"""迭代训练模型"""
init = tf.global_variables_initializer()

train_epochs = 20
display_step = 2

with tf.Session() as sess:
    sess.run(init)
    merged_summary_op = tf.summary.merge_all()  # 合并前面定义的所有的summary
    summary_writer = tf.summary.FileWriter('log/yeq2x', sess.graph)  # 用于写summary
    for epoch in range(train_epochs):
        for (x, y) in zip(X_train, Y_train):
            sess.run(optimizer, feed_dict={X: x, Y: y})
        # 在每个epoch都生成summary
        summary_str = sess.run(merged_summary_op, feed_dict={X: x, Y: y})
        # 然后将summary写入文件
        summary_writer.add_summary(summary_str, epoch)
    print("完成,cost=", sess.run(cost, feed_dict={X: X_train, Y: Y_train}), "W=", sess.run(W), "b=", sess.run(b))

运行完成后,在日志目录下就形成了相应的日志文件,去到其上级目录,在命令行下启动TensorBoard服务:

tensorboard --logdir ./yeq2x

可以看到:

TensorBoard 1.10.0 at http://PC-20180324TODF:6006 (Press CTRL+C to quit)

使用Chrome或者Firefox打开这个URL即可:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关学习资源

Tensorboard 详解(上篇)

猜你喜欢

转载自blog.csdn.net/SHU15121856/article/details/85048001