TensorFlow学习笔记(8) Tensorboard可视化

本文详细介绍了TensorFlow的可视化工具TensorBoard,包括TensorBoard的基本概念、计算图可视化、命名空间与节点信息、监控指标的可视化,并通过实例展示了如何使用TensorBoard对神经网络的训练过程进行可视化,帮助理解模型的运行状态和性能变化。
摘要由CSDN通过智能技术生成

Tensorboard简介

Tensorboard是Tensorflow的可视化工具,通过tf程序输出的日志文件来可视化程序的运行状态。下面的代码完成了Tensorboard日志输出的功能。

import tensorflow as tf

input1 = tf.constant([1.0,2.0,3.0],name='input1')
input2 = tf.Variable(tf.random_uniform([3]),name='input2')
output = tf.add_n([input1,input2],name='add')

#生成一个写日志文件的writer,并将计算图写入日志中
writer = tf.summary.FileWriter('./tensorboard',tf.get_default_graph())
writer.close()

然后在命令行中输入tensorboard --logdir tensorboard即可打开网页(使用中报错,通过这种方法解决)
在这里插入图片描述
其中右上角下拉菜单中有其他选项的信息,对应着每一类信息的可视化结果。

TensorFlow计算图可视化

命名空间与Tensorboard图上节点

在Tensorboard的默认视图中,同一个命名空间下的所有节点会被缩略成一个节点,只有顶层命名空间的节点才会被显示。因此可以通过tf.variable_scopetf.name_scope来定义命名空间进一步简化可视化图。

tf.variable_scope与tf.name_scope的不同之处:
使用tf.Variable会受tf.name_scope的影响,但是tf.get_variable则不会受tf.name_scope的影响

import tensorflow as tf

with tf.variable_scope('input1'):
    input1 = tf.constant([1.0,2.0,3.0],name='input1')
with tf.variable_scope('input2'):
    input2 = tf.Variable(tf.random_uniform([3]),name='input2')
output = tf.add_n([input1,input2],name='add')

#生成一个写日志文件的writer,并将计算图写入日志中
writer = tf.summary.FileWriter('./tensorboard',tf.get_default_graph())
writer.close()

生成的tensorboard可视化图如下图,此时图上就没有显示初始化过程:
在这里插入图片描述
下面是之前构建的用于训练mnist的全连接神经网络,增加几个变量的命名空间,然后对其进行tensorboard可视化:

import tensorflow as tf
import os
from tensorflow.examples.tutorials.mnist import input_data
# 定义神经网络结构相关的参数
INPUT_NODE = 784
OUTPUT_NODE = 10
LAYER1_NODE = 500

# 定义函数创建或者加载变量,并生成正则化损失加入损失集合
def get_weight_variable(shape, regularizer):
    weights = tf.get_variable('weights', shape, initializer=tf.truncated_normal_initializer(stddev=0.1))
    if regularizer != None:
        tf.add_to_collection('losses', regularizer(weights))
    return weights

# 定义神经网络的前向传播过程
def inference(input_tensor, regularizer):
    with tf.variable_scope('layer1'):
        weights = get_weight_variable([INPUT_NODE, LAYER1_NODE], regularizer)
        biases = tf.get_variable('biases', [LAYER1_NODE], initializer=tf
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值