Tensorboard简单总结——显示Graph、Scalar等

本文详细介绍TensorBoard在TensorFlow中的应用,包括如何记录和可视化模型训练过程中的关键指标,如损失函数、权重分布、图像和音频数据,以及如何利用TensorBoard进行神经网络的调试和优化。

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

Tensorboard

TensorFlow使用 TensorBoard 来提供计算图形的图形图像。这使得理解、调试和优化复杂的神经网络程序变得很方便。TensorBoard 也可以提供有关网络执行的量化指标。它读取 TensorFlow 事件文件,其中包含运行 TensorFlow 会话期间生成的摘要数据。
参考文章1

参考文章2

  • 第一步是确定想要的 OP 摘要

    需要什么量就在这个量初始化后面记录这个量

    • 刻度图(记录张量)

      可以在 tf.summary.scalar OP 的帮助下得到需要的术语摘要。

      tf.summary.scalar(name, tensor)有两个参数:

      • name:可以理解为图的标题。在 GRAPHS 中则是该节点的名字
      • tensor:包含单个值的 tensor,说白了就是作图的时候要用的数据

      举个栗子(记录loss):

      loss = tf.reduce_mean(tf.pow(y_model - OUT, 2))    
      tf.summary.scalar('loss', loss) #创建刻度图
      

      执行的结果(显示在tensorboard>SCALAR):
      在这里插入图片描述

    • 直方图(记录变量)

      使用 tf.summary.histogram 可视化梯度、权重或特定层的输出分布。

      举个栗子(记录多元线性规划的输出):

      y_model = tf.matmul(IN, w_tf) + b_tf
      tf.summary.histogram('output', y_model) #创建直方图
      

      执行结果(显示在tensorboard>HISTOGRAM):

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89X3q8jY-1584884538037)(C:/Users/%E8%B5%B5%E5%8D%93%E9%9B%85/AppData/Roaming/Typora/typora-user-images/image-20200322213029673.png)]

    • 记录image与audio的方式:
      tf.summary.audio(name, tensor, sample_rate, max_outputs=3)
      tf.summary.image(name, tensor, max_outputs=3)

    • 记录图的结构:
      run_options=tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)运行节点
      run_metadata=tf.RunMetadata()运行节点需要保存的元图数据
      _,loss_value,step=sess.run([train_op,loss,global_step],feed_dict={x:xs,y:ys}, options=run_options,run_metadata=run_metadata)提供运行节点和需要保存的数据节点,然后在会话的运行中记录相关信息。
      train_writer.add_run_metadata(run_metadata,’step%03d’ % i)将第i步迭代的图结构保存下来

  • 第二步生成的摘要需要用事件文件写入(创建写日志节点)
    日志节点的创建一般在会话(tf.Session)下,变量初始化后创建一个writer第一个参数为保存日志(summary)的路径,第二个参数是要保存的图.

    writer = tf.summary.Filewriter('summary_dir', sess.graph)
    

    summary_dir中存储的是tensorboard要运行的事件的绝对路径,路径千万要记住!是否能正常打开tensorboard大部分取决于这里。

    举个栗子:(注意:我自己的路径是E:\YanQiLake\DL\log)

    writer = tf.summary.FileWriter('E:\YanQiLake\DL\log', sess.graph) #创建日志节点,在变量初始化之后
    

    打开tensorboard:在终端运行:tensorboard --logdir=E:\YanQiLake\DL\log。得到网址,粘贴到谷歌浏览器中,就可以看到tensorboard了!

  • 第三步节点的融合

    定义融合所有需要记录节点(记录张量、变量、image和audio的这些节点)的信息到这个节点。

    • 融合

      merged_summary_op = tf.summary.merge_all()

    • run

      这个merged_summary_op节点将在会话下运行,只有run了以后,才真实地记录信息:

      TensorFlow中每一个OP要起作用必须要RUN!!!

    	_,loss_value,step,summary=sess.run([train_op,loss,global_step,merged_summary_op],feed_dict={x:xs,y:ys})
    
    • 记录

      将需要记录步数i的信息放到summary中:train_writer.add_summary(summary, i)

  • 最后关闭日志记录器

    writer.close()

  • 遇到的问题

    • 打开tensorboard遇到No dashboards are active for the current data set.

      保存log的文件路径绝对不能有空格或汉字,并且等号两端不能留空格。
      tensorboard --logdir = E:\YanQiLake\DL\log这样写就错了!

    • 如果可以正常运行graph,但是无法显示scalar等,那就是上面步骤有漏掉的。

  • 运行代码
    以多元线性回归为例

### 配置和使用 TensorBoard 在 YOLOv8 为了确保能够在YOLOv8项目中成功配置并使用TensorBoard,需遵循一系列特定的操作流程。 #### 安装必要的依赖库 首先确认已安装最新版本的`torch`, `torchvision`以及`tensorboardX`。这些包对于支持模型训练过程中的数据记录至关重要[^1]。可以通过pip命令来完成安装: ```bash pip install torch torchvision tensorboardX ``` #### 修改配置文件以启用日志记录功能 编辑YOLOv8项目的配置文件(通常是`.yaml`格式),找到对应于日志保存路径的部分,并指定一个合适的目录用于存储由TensorBoard产生的事件文件。这一步骤确保了后续能够通过浏览器访问可视化的训练进度图表[^2]。 #### 编辑代码实现回调机制 在YOLOv8源码里加入针对每轮迭代结束后的处理逻辑——即调用`writer.add_scalar()`函数向TensorBoard写入损失值或其他感兴趣的指标;同时也可以利用`add_graph()`方法绘制网络结构图以便更好地理解所构建的神经网络架构[^3]。 ```python from torch.utils.tensorboard import SummaryWriter # 创建SummaryWriter对象实例化 writer = SummaryWriter('runs/yolov8_experiment_1') for epoch in range(num_epochs): ... # 记录每次epoch后的loss变化情况 writer.add_scalar('Loss/train', running_loss / len(train_loader), epoch) # 可视化模型结构 input_to_model = ... # 输入张量, shape=(batch_size, channels, height, width) writer.add_graph(model, input_to_model) ``` #### 启动TensorBoard服务查看结果 当一切准备就绪之后,在终端执行如下指令启动本地服务器端口监听,默认情况下会绑定至http://localhost:6006地址上展示实时更新的数据面板界面: ```bash tensorboard --logdir=runs/ ``` 此时打开Web浏览器输入上述URL即可浏览到有关当前实验的各项统计信息概览页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值