在Pytorch中使用Tensorboard可视化训练过程

【在Pytorch中使用Tensorboard可视化训练过程】 https://www.bilibili.com/video/BV1Qf4y1C7kz/?share_source=copy_web\&vd_source=f00bfb41b3b450c3767070ed82f30ac8

主要功能:

1.保存网络结构图

2.保存训练集的损失Loss,验证集的正确性Accuracy以及学习率变化等

3.保存训练的权重

4.保存预测图片的相关信息

使用方法:

①summarywriter来自于torch.utils.tensorboard模块中导入

python 复制代码
from torch.utils.tensorboard import SummaryWriter

②首先需要实例化summarywriter对象,需要定义一个将tensorboard文件保存路径

在实例化后会自动创建文件

python 复制代码
# 实例化SummaryWriter对象
tb_writer = SummaryWriter(log_dir="runs/flower_experiment")

③想要看到模型结构图需要在实例化模型后,创建init_img,使图形进行正向传播;通过模型的正向传播得到结构图

python 复制代码
# 实例化模型
model = resnet34(num_classes=args.num_classes).to(device)

# 将模型写入tensorboard
init_img = torch.zeros((1, 3, 224, 224), device=device)
tb_writer.add_graph(model, init_img)

通过实例化模型add_graph函数将模型和初始图片传入

④在每个训练的epoch之后,在验证完模型后,会保存当前轮数的训练集平均损失Loss和验证集的Accuracy以及learning rate

python 复制代码
# add loss, acc and lr into tensorboard
print("[epoch {}] accuracy: {}".format(epoch, round(acc, 3)))
tags = ["train_loss", "accuracy", "learning_rate"]
tb_writer.add_scalar(tags[0], mean_loss, epoch)
tb_writer.add_scalar(tags[1], acc, epoch)
tb_writer.add_scalar(tags[2], optimizer.param_groups[0]["lr"], epoch)

⑤添加预测图片,使用add_figure将结果保存为图片存储

python 复制代码
if fig is not None:
    tb_writer.add_figure("predictions vs. actuals",
        figure=fig,
        global_step=epoch)

⑥添加直方图,使用add_histogram

python 复制代码
tb_writer.add_histogram(tag="conv1",
        values=model.conv1.weight,
        global_step=epoch)

效果:

展示的网络架构图,按层显示

values可以传入很多格式,包括torch.tensor,numpy.array,string,blockname

打开方式:

结果保存于事先设定的路径

在终端进入路径,或在文件夹按住shift和鼠标右键打开终端

在终端输入命令,需要加一个后面的参数打开指定数目的图片,否则会显示默认值

python 复制代码
tensorboard.exe --logdir=./ --samples_per_plugin=images=50

显示信息:

scalars中的显示信息

images中的显示信息

可以看到随着训练预测的结果越来越精准

graphs中保存每一个网络层结构中的信息

histogram中保存的为直方图

横坐标数值,纵坐标对应出现的次数,在中间分布最密集,随着不断迭代次数会变

点击左侧overlay切换

在distributions中展示权重变换

相关推荐
a-6263 分钟前
三维重建的步骤-1(采集的是环绕物体均匀旋转一圈的视频)
python·pycharm·三维重建·metashape
冷雨夜中漫步6 分钟前
DeepSeek Harness:一切皆插件的 AI Agent 框架深度解析
java·人工智能·ai·开源·github
IT_陈寒6 分钟前
Vite热更新失效?八成是这个配置在搞鬼
前端·人工智能·后端
129Lab6 分钟前
数据驱动电池SOH预测实战:用AI工具快速构建深度学习模型并调参
pytorch·深度学习·ai编程·数据驱动·特征工程·电池管理系统·电池健康状态
皮皮虾❀8 分钟前
AI Agent可观测性:在钉钉生态中构建透明、可控的智能体服务
人工智能·钉钉
ʜᴇɴʀʏ10 分钟前
TIP 2025 | DIL-SSOD:密集信息增强与关系一致性正则化的半监督目标检测
人工智能·目标检测·目标跟踪
Nomarsgo13 分钟前
柔性生产平台工业显示解决方案——基于联控 Lionconit IFD-1901 工业显示器打造高可靠人机交互终端
人工智能·科技·计算机外设·视觉检测·电脑·人机交互·制造
qq_225891746615 分钟前
基于Flask的空气质量监测与预测分析系统
开发语言·后端·python·信息可视化·django·flask
软糯小野猫25 分钟前
使用Pytorch从零开始构建StyleGAN
pytorch·深度学习·gan·图像生成·stylegan
天天代码码天天27 分钟前
不装 Android Studio,也能把 Vue / React 一键打成 APK:开源工具 lw.Web2Android
人工智能