3-Tensorflow-demo_07_tensorboard

本文介绍如何使用TensorFlow的summary模块进行数据可视化,包括标量、图像和直方图的输出,通过实例演示了如何在训练过程中监控模型参数的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import tensorflow as tf

"""
tf.summary.scalar(name, tensor, collections=None, family=None):
  输出一个 `Summary` 对象(包含的是单个标量值)
  Args:
    name: 生成的节点的名字.
    tensor: 单个实数值

tf.summary.image(name, tensor, max_outputs=3, collections=None, family=None):
  输出图片.
    `max_outputs` 输出图片的最大数量。
     `tensor` :必须是 4-D的tenor ,shape = `[batch_size,height, width, channels]` 
               `channels` 如下:
                  *  1: `tensor` is interpreted as Grayscale.
                  *  3: `tensor` is interpreted as RGB.
                  *  4: `tensor` is interpreted as RGBA.

tf.summary.histogram(name, values, collections=None, family=None):
  生成直方图,将你的数据以直方图的方式进行可视化,了解数据分布。
     values:  实数的`Tensor`. 任意形状
"""


def tensorboard():
    """
    实现一个求解n阶乘值乘以3的需求(构建一个控制依赖项),使用tf.control_dependencies
    :return:
    """
    with tf.Graph().as_default():
        # 1、构建输入的占位符,表示一个数字。
        input_x = tf.placeholder(tf.float32, None, 'input_x')

        # 2、定一个变量,表示阶乘的值。
        sum_x = tf.Variable(
            initial_value=1.0, dtype=tf.float32, name='sumx'
        )
        # todo 加一段可视化代码
        tf.summary.scalar(name='sum_x', tensor=sum_x)

        # 3、做一个乘法操作
        temp = sum_x * input_x
        # 将temp这个tensor的值,再次的赋值给sum_x
        assign_opt = tf.assign(
            ref=sum_x, value=temp
        )
        # 4、做一个阶乘的累加值,再乘以3的操作。
        with tf.control_dependencies(control_inputs=[assign_opt]):
            # fixme 当前with语句块中的代码执行之前,一定会触发control_inputs中给定的tensor操作
            y = sum_x * 3
            # todo 加一段可视化代码
            tf.summary.scalar(name='y', tensor=y)

        # 二、执行会话
        with tf.Session() as sess:
            sess.run(tf.global_variables_initializer())
            # todo 合并所有的summary 可视化输出操作。如果你图中没有定义,则返回None。
            summary = tf.summary.merge_all()
            # 构建一个日志输出对象
            writer = tf.summary.FileWriter(
                logdir='./models/ai20', graph=sess.graph
            )

            print('sum_x更新之前的值为:{}'.format(sess.run(sum_x)))
            step = 1
            for data in range(1, 6):
                y_, summary_ = sess.run([y, summary], feed_dict={input_x: data})
                # 将可视化输出的相关信息写入到磁盘文件中
                writer.add_summary(summary_, global_step=step)
                step +=1
            print('sum_x更新之后的值为:{}'.format(sess.run(sum_x)))
            writer.close()


if __name__ == '__main__':
    tensorboard()
D:\Anaconda\python.exe D:/AI20/HJZ/04-深度学习/2-TensorFlow基础/tf_基础代码/01_01Graph和Session.py
2019-11-30 21:49:59.940362: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
Tensor("add:0", shape=(3, 5), dtype=float32) Tensor("add_1:0", shape=(5, 3), dtype=float32) Tensor("MatMul:0", shape=(3, 3), dtype=float32)
<tensorflow.python.client.session.InteractiveSession object at 0x000001BBFC9E3C50>
[[ 3.2265615  4.2265615  5.2265615]
 [ 4.2265615  6.2265615  6.2265615]
 [44.226562   4.2265615  3.2265615]
 [ 2.2265615  4.2265615  5.2265615]
 [ 5.2265615  5.2265615  5.2265615]]
[[208.3552    78.539925  81.19179 ]
 [232.26472  113.44945  119.1013  ]
 [260.16064   96.34537   99.99722 ]]

Process finished with exit code 0

打开方式:
在环境终端,复制events文件夹路径后

(tf)tensorboard --logdir +路径

找到6006的链接进去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值