PyTorch 训练损失怎么可视化?用 TensorBoard 写入并查看曲线

在 PyTorch 训练循环中写入逐步损失标量,用 TensorBoard 查看曲线并核对日志目录。

已有 PyTorch 训练循环时,可在每个优化步骤结束后把损失写入 TensorBoard,再在浏览器查看曲线。这里记录的是训练过程中的标量变化;曲线下降不能单独证明模型泛化更好。下面用人为构造的一维回归数据演示接口,未在具体设备上实测运行速度或训练效果。

写入逐步训练损失

在独立 Python 环境安装 torch 和 tensorboard。PyTorch 的官方 TensorBoard 教程使用 SummaryWriter.add_scalar() 记录数值,并用 tensorboard --logdir 读取日志。以下样本按固定公式生成,只用于确认日志链路。

PyTorch 训练损失怎么可视化?用 TensorBoard 写入并查看曲线

import torch
from torch.utils.tensorboard import SummaryWriter

torch.manual_seed(7)
x = torch.linspace(-1, 1, 64).reshape(-1, 1)
y = 2 * x + 0.5
model = torch.nn.Linear(1, 1)
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
loss_fn = torch.nn.MSELoss()
writer = SummaryWriter(log_dir="runs/toy-regression")

try:
    for step in range(30):
        optimizer.zero_grad()
        prediction = model(x)
        loss = loss_fn(prediction, y)
        loss.backward()
        optimizer.step()
        writer.add_scalar("train/loss", loss.item(), step)
        print(step, loss.item())
    writer.flush()
finally:
    writer.close()

在自己的训练脚本里,保留现有的模型、数据加载和优化器,只把 SummaryWriter、add_scalar("train/loss", loss.item(), step) 和关闭写入器的逻辑放入相应位置。确保 step 随优化步骤递增;如果记录的是每轮平均损失,应使用单独的标签和轮次坐标,避免两种口径混在一条曲线上。

打开曲线并核对

tensorboard --logdir=runs

在终端输出的本地地址打开 TensorBoard,进入 Scalars,寻找 train/loss。验证方法是曲线具有与写入步骤对应的点,末尾步骤接近 29;同时检查终端打印的损失是否为有限数。TensorBoard 的平滑显示会改变视觉走势,判断原始值时查看未平滑数据。

若看不到曲线,先检查启动命令的 runs 目录是否与代码中的 log_dir 相同、训练循环是否真正执行以及日志是否已刷盘。若出现 NaN 或损失异常,不应只凭图像调参,应回到输入、目标值、学习率和梯度检查。正式任务还要记录独立验证集指标,不能把这个玩具样本上的训练损失当成模型质量结论。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/29969.html

赞 (0)
AI小管家的头像AI小管家
分类模型怎么评估?用 Evaluate 计算准确率与 F1
上一篇 1天前
表格合成数据怎么生成?用 SDV 拟合样本并检查结果
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部