TensorBoard的简单使用

TensorBoard的简单使用

Tensorboard是TensorFlow自带的一个强大的可视化工具,帮助理解复杂的模型和检查实现中的错误。
Tensorboard 可以记录与展示以下数据形式:
(1)标量Scalars
(2)图片Images
(3)音频Audio
(4)计算图Graph
(5)数据分布Distribution
(6)直方图Histograms
(7)嵌入向量Embeddings

功能

Event:展示训练过程中的统计数据(最值,均值等)变化情况
Image:展示训练过程中记录的图像
Audio:展示训练过程中记录的音频
Histogram:展示训练过程中记录的数据的分布图

原理

在运行过程中,记录结构化的数据运行一个本地服务器,监听6006端口,请求时,分析记录的数据,绘制。

实现过程简介

(1)首先肯定是先建立一个graph,你想从这个graph中获取某些数据的信息
(2)确定要在graph中的哪些节点放置summary operations以记录信息
使用tf.summary.scalar记录标量
使用tf.summary.histogram记录数据的直方图
使用tf.summary.distribution记录数据的分布图
使用tf.summary.image记录图像数据。。。
(3)运行所有的summary节点,可以使用tf.summary.merge_all去将所有summary节点合并成一个节点,只要运行这个节点,就能产生所有我们之前设置的summary data。
(4)使用tf.summary.FileWriter将运行后输出的数据都保存到本地磁盘中
(5)运行整个程序,并在命令行输入运行TensorBoard的指令,之后打开web端可查看可视化的结果。

案例演示

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

rng = np.random

# 参数
learning_rate = 0.01
epochs = 5000
display_step = 100

# 训练数据
trainX = np.array([3.3, 4.4, 5.6, 6.8, 7.9, 8.7, 9.6, 10.01, 11.22, 12.09, 11.02, 10.12, 9.04, 8.0])
trainY = np.array([6.88722945, 8.91960486, 11.22458955, 14.51964028, 15.87852028,
                   18.22302188, 19.32265511, 20.60828209, 22.83320284, 24.67312968,
                   22.09981643, 20.25930234, 18.83617092, 16.66894766])
n_samples = len(trainX)
X = tf.placeholder("float")
Y = tf.placeholder("float")

# 模型参数 保存 预测
W = tf.Variable(rng.randn(), name="weight")
b = tf.Variable(rng.randn(), name="bias")

# 构建线性模型 CNN
pred = tf.add(tf.multiply(X, W), b)

# 求误差
cost = tf.reduce_sum(tf.pow(pred - Y, 2)) / (2 * n_samples)

# 使用梯度下降拟合数据,2个参数
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

# 初始化所有变量
init = tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)

    # Fit all training data
    for epoch in range(epochs):
        for (x, y) in zip(trainX, trainY):
            sess.run(optimizer, feed_dict={X: x, Y: y})
        if (epoch+1) % display_step == 0:
            c = sess.run(cost, feed_dict={X: trainX, Y:trainY})
            print("Epoch:", "%04d" % (epoch + 1), "cost=", "{:.9f}".format(c), "W=", sess.run(W), "b=", sess.run(b))
    print("Optimization Finished!")
    training_cost = sess.run(cost, feed_dict={X: trainX, Y: trainY})
    print("Training cost=", training_cost, "W=", sess.run(W), "b=", sess.run(b), "\n")

    # Graphic display
    plt.plot(trainX, trainY, "ro", label="true data")
    plt.plot(trainX, sess.run(W) * trainX + sess.run(b), label="Fitted line")
    plt.legend()
    plt.show()

# 保存计算图
with tf.summary.FileWriter(logdir="logdir", graph=tf.get_default_graph()) as writer:
    writer.flush()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值