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

在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模块中导入

from torch.utils.tensorboard import SummaryWriter

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

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

# 实例化SummaryWriter对象
tb_writer = SummaryWriter(log_dir="runs/flower_experiment")

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

# 实例化模型
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

# 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将结果保存为图片存储

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

⑥添加直方图,使用add_histogram

tb_writer.add_histogram(tag="conv1",values=model.conv1.weight,global_step=epoch)

效果:

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

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

打开方式:

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

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

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

tensorboard.exe --logdir=./ --samples_per_plugin=images=50

显示信息:

scalars中的显示信息

images中的显示信息

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

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

histogram中保存的为直方图

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

点击左侧overlay切换

 在distributions中展示权重变换

相关文章:

  • 晨控CK-FR12与欧姆龙NX系列PLC配置EtherNet/IP通讯连接操作手册
  • Spring Boot多环境配置详解
  • GTS-400 系列运动控制器板(七)----修改限位开关触发电平
  • Cline Roo Code
  • 野外价值观:在真实世界的语言模型互动中发现并分析价值观
  • 【AI微信小程序开发】大转盘小程序项目代码:自设转盘选项和概率(含完整前端+后端代码)
  • docker 常见命令
  • Docker 数据卷
  • 基于 Vue 的Tiptap 富文本编辑器使用指南
  • vivado XMP使用
  • linux复习
  • 从M个元素中查找最小的N个元素时,使用大顶堆的效率比使用小顶堆更高,为什么?
  • 川翔云电脑32G大显存集群机器上线!
  • Linux内核之文件驱动随笔
  • Windows远程注入的一些问题
  • 从 0 到 1 打通 AI 工作流:Dify+Zapier 实现工具自动化调用实战
  • 25.4.22学习总结
  • Linux——基于socket编程实现简单的Tcp通信
  • 如何在 Java 中从 PDF 文件中删除页面(教程)
  • 删除不了jar包-maven clean package失败
  • 中国空间站已在轨实施了200余项科学与应用项目
  • 董明珠连任格力电器董事,回应管理层年轻化
  • 山东省淄博市委原常委宋振波被“双开”
  • 广西三江通报“网约车司机加价”:对网约车平台进行约谈
  • 全总:五一拟表彰全国劳模先进工作者2426名,盛李豪入选
  • 马上评|治理“龟速车”,也是一次驾驶文明的升级