深度学习基础之《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

相关推荐
谢眠11 分钟前
深度学习day3-自动微分
python·深度学习·机器学习
z千鑫20 分钟前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr28 分钟前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
爱喝热水的呀哈喽34 分钟前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
LZXCyrus2 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
YRr YRr2 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
幻风_huanfeng2 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
deephub3 小时前
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
人工智能·pytorch·深度学习·图嵌入
羞儿3 小时前
【读点论文】Text Detection Forgot About Document OCR,很实用的一个实验对比案例,将科研成果与商业产品进行碰撞
深度学习·ocr·str·std
deephub4 小时前
优化注意力层提升 Transformer 模型效率:通过改进注意力机制降低机器学习成本
人工智能·深度学习·transformer·大语言模型·注意力机制