- 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就可以了。