当前位置: 首页 > news >正文

TensorBoard如何在同一图表中绘制多个线条

1. 使用不同的日志目录

TensorBoard 会根据日志文件所在的目录来区分不同的运行。可以为每次运行指定一个独立的日志目录,TensorBoard 会自动将这些目录中的数据加载并显示为不同的运行。

示例(TensorFlow):
import tensorflow as tf# 第一次运行
writer1 = tf.summary.create_file_writer("logs/run1")
with writer1.as_default():for step in range(100):tf.summary.scalar("loss", 0.9 ** step, step=step)writer1.flush()# 第二次运行
writer2 = tf.summary.create_file_writer("logs/run2")
with writer2.as_default():for step in range(100):tf.summary.scalar("loss", 0.8 ** step, step=step)writer2.flush()
示例(PyTorch):
from torch.utils.tensorboard import SummaryWriter# 第一次运行
writer1 = SummaryWriter("runs/run1")
for step in range(100):writer1.add_scalar("loss", 0.9 ** step, step)
writer1.close()# 第二次运行
writer2 = SummaryWriter("runs/run2")
for step in range(100):writer2.add_scalar("loss", 0.8 ** step, step)
writer2.close()

在 TensorBoard 中,run1run2 会被显示为两个不同的运行,可以通过选择不同的运行来查看对应的图表。

2. 使用标签(Tag)区分

虽然标签主要用于区分同一运行中的不同数据(例如不同的指标),但也可以通过在标签中添加前缀或后缀来区分不同运行的数据。

示例(TensorFlow):
writer = tf.summary.create_file_writer("logs/combined")with writer.as_default():for step in range(100):tf.summary.scalar("loss_run1", 0.9 ** step, step=step)tf.summary.scalar("loss_run2", 0.8 ** step, step=step)writer.flush()
示例(PyTorch):
writer = SummaryWriter("runs/combined")
for step in range(100):writer.add_scalar("loss_run1", 0.9 ** step, step)writer.add_scalar("loss_run2", 0.8 ** step, step)
writer.close()

在 TensorBoard 中,loss_run1loss_run2 会被绘制在同一个图表中,但可以通过标签区分它们。

3. 使用 TensorBoard 的运行选择器

TensorBoard 提供了一个运行选择器(Run Selector),允许选择要显示的运行。可以在启动 TensorBoard 时指定日志目录的父目录,TensorBoard 会自动加载所有子目录中的日志文件,并将每个子目录视为一个独立的运行。

示例:

假设日志目录结构如下:

logs/
├── run1/
├── run2/
└── run3/

可以通过以下命令启动 TensorBoard:

tensorboard --logdir=logs

在 TensorBoard 的界面中,可以通过运行选择器选择要显示的运行。每个运行的数据会被分别加载,你可以通过切换运行来查看不同的实验结果。

4. 为运行添加描述

为了更好地管理运行数据,可以在日志目录中添加一个 tfevents 文件,其中包含运行的描述信息。TensorBoard 会读取这些描述信息,并在界面中显示。

示例:

在日志目录中创建一个 README.md 文件,描述运行的参数和配置:

logs/
├── run1/
│   └── README.md
├── run2/
│   └── README.md
└── run3/└── README.md

README.md 文件中,可以写入类似以下内容:

# Run 1
- Learning Rate: 0.001
- Batch Size: 32
- Model: ResNet50

TensorBoard 会读取这些描述信息,并在运行选择器中显示,帮助快速区分不同的运行。

在这里插入图片描述

http://www.xdnf.cn/news/64783.html

相关文章:

  • 第 7 篇:总结与展望 - 时间序列学习的下一步
  • k8s集群GPU监控项说明
  • 【人工智能】使用vLLM高性能部署Qwen大语言模型
  • 10天学会嵌入式技术之51单片机-day-2
  • LVGL学习(一)(IMX6ULL运行LVGL,lv_obj_t,lv_obj,size,position,border-box,styles,events)
  • 4·25调价倒计时:SheinTemu美国站价格策略3大关键解读
  • 多路由器通过RIP动态路由实现通讯(单臂路由)
  • Dify忘记管理员密码,重置的问题
  • 数据结构中的各种排序
  • java反射 笔记
  • redis数据类型-位图bitmap
  • Java:多线程
  • C#处理网络传输中不完整的数据流
  • Maxscript调用Newtonsoft.Json解析Json
  • 制作一款打飞机游戏13:状态机
  • 广州可信数据空间上线:1个城市枢纽+N个产业专区+高质量数据集(附28个数据集清单)
  • 如何建设企业级合成数据中台?架构设计、权限治理与复用机制全解
  • 第 3 篇:揭秘时间模式 - 时间序列分解
  • OpenCV基础函数学习4
  • 【油藏地球物理正演软件ColchisFM】ColchisFM正演软件在阿姆河右岸区块礁滩复合体识别中的应用
  • transformer
  • 【Docker-16】Docker Volume存储卷
  • android 多个viewmodel之间通信
  • Android 最简单的native二进制程序
  • 【MySQL】:数据库事务管理
  • 深入理解路由器、IP地址及网络配置
  • 你的大模型服务如何压测:首 Token 延迟、并发与 QPS
  • 前端笔记-AJAX
  • Excel/WPS表格中图片链接转换成对应的实际图片
  • 大模型应用开发大纲