深度学习基础之《TensorFlow框架(3)—TensorBoard》

一、TensorBoard可视化学习

1、TensorFlow有一个亮点就是,我们能看到自己写的程序的可视化效果,这个功能就是TensorBoard

2、TensorFlow可用于训练大规模深度神经网络所需的计算,使用该工具涉及的计算往往复杂而深奥。为了方便TensorFlow程序的理解、调试和优化,TensorFlow提供了TensorBoard可视化工具

二、实现程序可视化过程

1、数据序列化

TensorBoard通过读取TensorFlow的事件文件来运行,需要将数据生成一个序列化的summary protobuf对象

将图序列化到本地events文件,这将在指定目录中生成一个events文件,其名称格式如下:

events.out.tfevents.{timestamp}.{hostname}

2、将可视化的图写入事件文件中API

(1)1.x版本:

tf.summary.FileWriter(path, graph=)

说明:

path:路径

graph:指定的图

(2)2.x版本:

writer = tf.summary.create_file_writer(path)

说明:创建一个文件写入器writer

path:路径

tf.summary.graph(graph)

说明:写入图

3、启动TensorBoard

终端输入:

tensorboard --logdir="事件文件的地址"

在浏览器中打开TensorBoard的图页面http://127.0.0.1:6006,就会看到图了

4、修改代码

python 复制代码
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf

def tensorflow_demo():
    """
    TensorFlow的基本结构
    """

    # TensorFlow实现加减法运算
    a_t = tf.constant(2)
    b_t = tf.constant(3)
    c_t = a_t + b_t
    print("TensorFlow加法运算结果:\n", c_t)
    print(c_t.numpy())

    # 2.0版本不需要开启会话,已经没有会话模块了

    return None

def graph_demo():
    """
    图的演示
    """
    # TensorFlow实现加减法运算
    a_t = tf.constant(2)
    b_t = tf.constant(3)
    c_t = a_t + b_t
    print("TensorFlow加法运算结果:\n", c_t)
    print(c_t.numpy())

    # 查看默认图
    # 方法1:调用方法
    default_g = tf.compat.v1.get_default_graph()
    print("default_g:\n", default_g)

    # 方法2:查看属性
    # print("a_t的图属性:\n", a_t.graph)
    # print("c_t的图属性:\n", c_t.graph)

    # 自定义图
    new_g = tf.Graph()
    # 在自己的图中定义数据和操作
    with new_g.as_default():
        a_new = tf.constant(20)
        b_new = tf.constant(30)
        c_new = a_new + b_new
        print("c_new:\n", c_new)
        print("a_new的图属性:\n", a_new.graph)
        print("b_new的图属性:\n", b_new.graph)

    # 开启new_g的会话
    with tf.compat.v1.Session(graph=new_g) as sess:
        c_new_value = sess.run(c_new)
        print("c_new_value:\n", c_new_value)
        print("我们自己创建的图为:\n", sess.graph)

    # 可视化自定义图
    # 1)创建一个文件写入器writer
    writer = tf.summary.create_file_writer("./tmp/summary")
    # 2)将图写入
    with writer.as_default():
        tf.summary.graph(new_g)

    return None

if __name__ == "__main__":
    # 代码1:TensorFlow的基本结构
    # tensorflow_demo()
    # 代码2:图的演示
    graph_demo()

运行之后生成:./tmp/summary/events.out.tfevents.1708140220.server001.26046.0.v2

5、运行tensorboard

bash 复制代码
tensorboard --bind_all --logdir="./tmp/summary"

访问http://127.0.0.1:6006

6、图例说明

将"Auto-extract high-degree nodes"选项去除

图例就不是两个三角重叠在一起了

椭圆是OpNode,小圆是Constant,箭头是数据流动

参考资料:
https://tensorflow.google.cn/versions/r2.6/api_docs/python/tf/summary/graph

相关推荐
十三画者7 小时前
【文献分享】ConfRetro:融合3D构象信息的逆合成预测Transformer框架
人工智能·深度学习·数据挖掘·数据分析·transformer·数据可视化
雷帝木木9 小时前
数据湖与数据仓库:从理论到实践
人工智能·python·深度学习·机器学习
yanghuashuiyue10 小时前
RNN结构记录
人工智能·rnn·深度学习
%4713 小时前
DAY 38
人工智能·pytorch·深度学习
June bug13 小时前
【HCIA- AI(正课)】2.1 深度学习基础
人工智能·深度学习
黑马水牛14 小时前
Carla仿真系列:9_Carla 单目障碍物测距,四种方法原理与实测
经验分享·python·深度学习·计算机视觉·ros·传感器·carla仿真
船厂电气自动化ai大模型15 小时前
AI大模型与数学第42课:泰勒级数完整展开(神经网络近似核心)
人工智能·python·深度学习·算法·机器学习
就是一顿骚操作19 小时前
GRU:用重置门与更新门简化序列记忆的经典解读
人工智能·深度学习·gru·论文解读
EachYoungX19 小时前
Sleep-EDF 睡眠信号数据集深度解析:从 EDF 文件到可复现睡眠分期样本
深度学习·数据分析
FlagOS智算系统软件栈20 小时前
CUDA Tile IR 接入 FlagOS 多芯片统一编译器 FlagTree,加速 AI 芯片生态迈向“开放计算”
人工智能·深度学习·flagos