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

初识pytorch:关于数据展示的组件tensorboard

目录
  • tensorboard
    • tensorboard的介绍
    • tensorboard的使用流程
    • tensorboard的使用技巧
    • 关于tensorboard的总结

tensorboard

tensorboard的介绍

tensorboard的作用就是让训练的过程可视化,例如大家伙在写代码的时候会在每一轮epoch中添加输入loss值的代码,但是文字终究没有一张图表来的直观。
虽然使用pandas库结合其他库也可以达到类似的效果,但是tensorboard是专门为深度学习设计的可视化工具,虽然刚开始是TensorFlow生态系统中的一环,但是pytorch中也支持使用它,总的来说用起来还是很方便的,同时看起来也是很直观的,不用自己去设置坐标轴什么的。

接下来是客观的介绍:
TensorBoard 是 TensorFlow 生态系统中一款强大的可视化工具,后来也被 PyTorch 等其他深度学习框架支持。它主要用于监控和分析模型训练过程,通过直观的可视化界面帮助开发者理解模型行为、调试训练过程并优化模型性能。

tensorboard的作用

**1.scalar 标量可视化 **
跟踪训练过程中的数值指标变化,如损失值(loss)、准确率(accuracy)、学习率(learning rate)等。通过折线图展示指标随训练步数(step)或轮次(epoch)的变化趋势,方便观察模型收敛情况。
示例场景:对比不同学习率下损失值的下降速度,判断模型是否过拟合(训练集准确率高但验证集准确率低)。

**2.图像可视化 **
展示训练数据、模型输入 / 输出图像、特征图等。例如:

  • 查看预处理后的训练样本是否符合预期
  • 可视化卷积神经网络中间层的特征图,理解模型关注的图像区域
  • 展示生成模型(如 GAN)生成的图像效果

**3.计算图可视化 **
以图形化方式展示模型的网络结构,包括各层的连接关系、参数数量等。帮助开发者直观理解模型架构,检查是否存在设计错误(如层连接错误、维度不匹配)。

**4.直方图与分布可视化 **
展示模型参数(权重、偏置)或梯度的分布变化。通过直方图或分布曲线,可观察参数是否正常初始化、梯度是否消失或爆炸,辅助判断模型训练稳定性。

**5.嵌入向量可视化 **
将高维特征向量(如文本嵌入、图像特征)通过 PCA、t-SNE 等降维算法投影到 2D 或 3D 空间,直观展示数据的聚类情况。常用于分析模型对数据的特征提取能力(如相似样本是否聚在一起)。

tensorboard的使用流程

1.首先你的电脑得有tensorboard,如果没有下载tensorboard的话可以使用pip进行下载,例如:

pip install tensorboard

2.然后要引入tensorboard和设定它保存的目录地址,例如:

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('logs')  # 日志将保存到 logs 目录 (这里是相对地址)

3.写入数据到你指定的目录里面,例如:

  • 写一些标量数据(例如准确率,损失值等),示例代码:
for epoch in range(10):loss = ...  # 计算当前轮次的损失acc = ...   # 计算当前轮次的准确率writer.add_scalar('Loss/train', loss, epoch)  # 标签/训练集,值,步数writer.add_scalar('Accuracy/val', acc, epoch)  # 标签/验证集
  • 写一些图像(注意这里可以不只是一张图像),示例代码:
import torchvision
from torchvision import datasets, transforms# 加载示例图像
transform = transforms.Compose([transforms.ToTensor()])
train_dataset = datasets.MNIST(root='data', train=True, transform=transform, download=True)
images, labels = next(iter(torch.utils.data.DataLoader(train_dataset, batch_size=4)))# 制作网格图像并写入
img_grid = torchvision.utils.make_grid(images)
writer.add_image('MNIST_samples', img_grid, 0)  # 标签,图像,步数
  • 写入模型,示例代码:
import torch.nn as nn# 定义一个简单模型
model = nn.Sequential(nn.Linear(784, 256),nn.ReLU(),nn.Linear(256, 10)
)# 写入模型结构(需要输入样例)
writer.add_graph(model, input_to_model=torch.randn(1, 784))

**4.启动 TensorBoard 查看结果 **
在终端(cmd打开或者pycharm里面就有)运行以下命令,指定日志目录,示例代码:

tensorboard --logdir=logs

然后会给你输出一些提示信息(地址通常是http://localhost:6006),直接复制链接然后浏览器访问就可以了

tensorboard的使用技巧

** 对比多个实验 **:将不同实验的日志保存到 runs 目录下的不同子文件夹(如 runs/lr0.01、runs/lr0.001),TensorBoard 会自动对比多个实验的指标。

** 实时监控 **:训练过程中,TensorBoard 会自动刷新日志,无需重启即可查看最新结果。

** 过滤与搜索 **:在界面中通过关键词过滤指标,快速定位关注的内容。

关于tensorboard的总结

TensorBoard 是深度学习开发中的重要工具,其核心价值在于:

  • 以可视化方式直观呈现训练过程,帮助发现问题(如过拟合、梯度异常)
  • 方便对比不同实验参数(如学习率、模型结构)的效果
  • 辅助理解模型内部机制(如特征提取、参数分布)

如果需要数据可视化,直接用tensorboard就可以了。

http://www.hskmm.com/?act=detail&tid=29490

相关文章:

  • win11家庭版升级到专业版教程,专业版改为家庭版教程
  • 计网思维导图总结
  • 如何下载不同版本的像素地牢
  • 一生一芯学习:多道程序 yield-os.c
  • 速通ACM省铜第十六天 赋源码(Sigma Cubes和Find Permutation 2和Rotate and Sum Query) - 教程
  • Linux操作系统扫盲汇总
  • ABC round 427
  • 卸载驱动模块,内核崩溃排查调试记录
  • 详细介绍:游戏引擎以及游戏开发
  • springboot大学校园旧物捐赠网站(代码+数据库+LW) - 详解
  • DropLoRA 论文浅读:通过动态子空间学习突破 LoRA 的性能瓶颈
  • python基础知识
  • switch语句的简单应用
  • 操作系统CPU和内核思维导图总结
  • defold游戏引擎与lua(teal)编程语言
  • 03 数值类型拓展
  • python如何引用变量的名称
  • Python GIL与No-GIL技术详解
  • fuse.js前端搜索简单使用的三个案例
  • 题解:AT_abc288_h [ABC288Ex] A Nameless Counting Problem
  • 2025 年 CBN 砂轮源头厂家最新推荐榜单:专业实力与客户满意度全景解析及选购指南
  • JDK安装和卸载
  • Python定义一个User类的基本写法
  • 10.12 CSP-S模拟30 改题记录
  • 编译GreatSQL with RocksDB引擎
  • ubuntu源码编译指定版本make
  • 【LeetCode】274. H 指数
  • python之多态
  • Linux安装JDK1.8 tomcat MariaDB(MySQL删减版)
  • Ubuntu系统部署Anaconda环境及Python语言的详细流程