• 1 安装
  • 2 如何调用
  • 3 如何查看
  • 4 实战
    • 4.1 代码调用
    • 4.2 查看
      • 1 SCALARS 训练曲线
      • 2 多次训练曲线对比
      • 3 IMAGES
      • 4 CRSPHS 模型图
  • 5 问题与解决
  • 6 工程文件、数据集、源码下载

1 安装

  • ubuntu/window下安装:

    • 在指定的conda环境下比如之前教程提到的mvs下,在终端输入:
pip install tensorboard

2 如何调用

  • 模块加载
from torch.utils.tensorboard import SummaryWriter
#实例化SummaryWriter,定义logdir为log即输出路径
writer = SummaryWriter('./log')
#输出图像
writer.add_image
#输出loss
writer.add_scalar
#输出模型结构
writer.add_graph
  • 运行train.py后,会在./log文件夹下保存一个文件类似 events.out.tfevents.xxx

3 如何查看

在终端输入:tensorboard --logdir=./log

会返回一个网址
浏览器中打开:http://localhost:6006/



4 实战

在上一节手写字识别的代码上,增加可视化
深度学习 pytorch手写数字识别 MNIST数据集 解析+详细注释

4.1 代码调用

train.py开头导入SummaryWriter,并实例化对象

#PyTorch可视化工具-Tensorboard
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(log_dir = './log') #实例化SummaryWriter,定义logdir为log即输出路径


在前前向传播前面,添加#输出图像 writer.add_image

 img_grid = torchvision.utils.make_grid(images) #to convert a batch of tensor into 3xHxW formatwriter.add_image('mnist_images',img_grid) #输出图像

在反向传播后面,添加#输出loss writer.add_scalar

 writer.add_scalar('loss',loss.item(),i+epoch*total_step)#输出loss


在模型初始化下面,添加#输出模型结构 writer.add_graph

这里要注意,如果cuda可用,要转换成cuda类型,否则用cpu模型

#输出模型结构
if torch.cuda.is_available():graph_inputs = torch.ones((1,1,28,28)).type(torch.FloatTensor).cuda()
else:graph_inputs = torch.ones((1,1,28,28)).type(torch.FloatTensor)
writer.add_graph(model, (graph_inputs,))# graph_inputs = torch.ones((1,1,28,28),dtype = torch.float32)
# writer.add_graph(model,graph_inputs)#输出模型结构

4.2 查看

在终端输入:tensorboard --logdir=./log
在浏览器打开返回的地址

1 SCALARS 训练曲线

2 多次训练曲线对比

每次训练会生成一个log,默认只显示最后一次曲线


将历史生成的log,分别放在不同的文件夹里,每个文件件放一个,如图

刷新网页,就可以看到历史版本曲线,可以选择要显示的版本,就行对比分析

3 IMAGES

IMAGES是每个batch的数据,
batch_size = 100 #一次送入100个数据;
这里batch=100,下面图片显示100个28*28的小图拼接而成

4 CRSPHS 模型图

CRSPHS 查看网络结构,双击进入

可以看到2层卷积

选中子网络双击,可以查看内部结构;

5 问题与解决

刚开始没有判断,gpu还是cpu模型

graph_inputs = torch.ones((1,1,28,28),dtype = torch.float32)
writer.add_graph(model,graph_inputs)#输出模型结构


报错如下,

RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same

根据报错内容可以看出Input type为torch.FloatTensor(CPU数据类型),而weight type(即网络权重参数这些)为torch.cuda.FloatTensor(GPU数据类型)。这是由于你使用的是在GPU上训练出的模型参数,但是在cpu上测试时并没有将该模型参数映射到cpu上。

解决办法1:
将graph_inputs,转换为cuda类型

graph_inputs = torch.ones((1,1,28,28),dtype = torch.float32)

转换后

 graph_inputs = torch.ones((1,1,28,28)).type(torch.FloatTensor).cuda()

解决办法2:
if 判断,如果cuda可用,要转换成cuda类型,否则用cpu模型;

将原来语句改为

#输出模型结构,这里要注意,如果cuda可用,要转换成cuda类型,否则用cpu模型
if torch.cuda.is_available():graph_inputs = torch.ones((1,1,28,28)).type(torch.FloatTensor).cuda()
else:graph_inputs = torch.ones((1,1,28,28)).type(torch.FloatTensor)
writer.add_graph(model, (graph_inputs,))

6 工程文件、数据集、源码下载

PyTorch可视化工具-Tensorboard在线查看训练曲线、网络结构图等相关推荐

  1. Pytorch可视化工具 —— TensorBoard

    1.TensorBoard简介 TensorBoard:TensorFlow中强大的可视化工具: 支持标量.图像.文本.音频.视频和Embedding等多种数据可视化: 在学习TensorBoard之 ...

  2. PyTorch框架学习十五——可视化工具TensorBoard

    PyTorch框架学习十五--可视化工具TensorBoard 一.TensorBoard简介 二.TensorBoard安装及测试 三.TensorBoard的使用 1.add_scalar() 2 ...

  3. 【深度学习】模型训练过程可视化思路(可视化工具TensorBoard)

    [深度学习]模型训练过程可视化思路(可视化工具TensorBoard) 文章目录 1 TensorBoard的工作原理 2 TensorFlow中生成log文件 3 启动TensorBoard,读取l ...

  4. 如何发现「将死」的ReLu?可视化工具TensorBoard助你一臂之力

    深度学习模型训练中会出现各种各样的问题,比如梯度消失.梯度爆炸,以及 Dying ReLU.那么如何及时发现这些问题并找出解决方案呢?本文以 Dying ReLU 问题为例,介绍了如何使用可视化工具 ...

  5. PyTorch 可视化工具Visdom

    参考链接:使用 Visdom 在 PyTorch 中进行可视化                     PyTorch 可视化工具 Visdom 介绍                     Visd ...

  6. 详解PyTorch可视化工具visdom(一)

    一.介绍 在深度学习领域,模型训练是一个必须的过程,因此常常需要实时监听并可视化一些数据,如损失值loss,正确率acc等.在Tensorflow中,最常使用的工具非Tensorboard莫属:在Py ...

  7. 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」

    视学算法报道 编辑:陈萍.魔王 转载自公众号:机器之心 深度学习模型的训练就像是「黑箱操作」,知道输入是什么.输出是什么,但中间过程就像个黑匣子,这使得研究人员可能花费大量时间找出模型运行不正常的原因 ...

  8. PyTorch可视化工具:GPU内存分配

    本文来源  机器之心  编辑:杜伟 想要了解自己的 PyTorch 项目在哪些地方分配 GPU 内存以及为什么用完吗?不妨试试这个可视化工具. 近日,PyTorch 核心开发者和 FAIR 研究者 Z ...

  9. 3 win10环境下安装Pytorch可视化工具Visdom(亲测,欢迎交流)

    0 Win10环境下安装Visdom可视化工具(亲测成功,欢迎交流) Visdom可视化工具: 本文测试安装环境为windows10+Anaconda+python3.7.10 (注意先装好Anaco ...

最新文章

  1. 上海交大c语言第一次作业,上海交大网络学院-计算机第一次作业及答案(含6次机会全部题目)-计算机基础的知识.docx...
  2. [pymongo] pymongo.errors.CursorNotFound Exception
  3. java equals 区别_Java中equals和==的区别
  4. SpringBoot中通过@Value获取自定义配置的值
  5. nginx lua示例
  6. 从一个案例看系统优化
  7. JavaFX 2 GameTutorial第4部分
  8. 使用匿名内部类实现方式二线程创建 java 1615474836
  9. 如何使用scikit-learn工具来进行PCA降维
  10. 仙人掌(cactus)
  11. SpringMVC返回JSON格式数据
  12. PE+Dism++组合实现操作系统的备份恢复给力。
  13. WIN10超级终端下载链接及使用教程
  14. 三、YUV422SP图像旋转
  15. Matlab读取图像数据并写入TXT
  16. 美团前端面试题(附答案)
  17. 微云同步盘 linux,微云同步盘pc版下载
  18. 社群活动——撬动用户参与意愿的7个指导原则
  19. 定风波·三月七日沙湖道中遇雨
  20. 2021全国电设(F题)openmv的图像识别之数字识别

热门文章

  1. 中国蓝莓种植深加工市场分析及投资前景预测报告2022-2028年
  2. 超越BN层的归一化方法FRN
  3. 维吉尼亚密码破解过程
  4. PyQt5 实现滚动字幕效果且字幕可以更新 可直接简单套用(甚至无需理解)
  5. el-popconfirm中confirm的使用
  6. IDEA配置JavaFX
  7. MeeGo和Nokia
  8. 基于matlab的COST231-hata信道模型性能仿真
  9. 奥村模型计算机仿真,实验三-Okumura-Hata方法计算机仿真.doc
  10. 项目管理者如何应对需求的不断变化