Pytorch学习记录-Pytorch可视化使用tensorboardX

在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录。

https://www.jianshu.com/p/23205a7921cd

https://www.jianshu.com/p/6235c1ecde67

https://www.jianshu.com/p/2b24454b0629

https://www.jianshu.com/p/0080047e5456

迟迟没有转到Pytorch的原因也是tensorflow的可视化做的好,不过现在Pytorch也支持了,在教程里有,学习一个。

在本教程中,使用简单的神经网络实现MNIST分类器,并使用TensorBoard可视化训练过程。在训练阶段,我们通过scalar_summary绘制损失和准确度函数,并通过image_summary可视化训练图像。此外,我们使用histogram_summary可视化神经网络参数的权重和梯度值。

pytorch使用tensorboard有三种方法:

昨天看了一下余霆嵩的教程,推荐使用tensorboardX,使用比logger更方便一些。

注意看注释就行了,这里我没有生成更复杂的直方图,仅仅记录了Loss、Accuracy、Graph

import torchimport torch.nn as nnimport torchvisionfrom torchvision import transformsfrom logger import Loggerfrom tensorboardX import SummaryWriter 加载SummaryWriter,设置保存地址。writer = SummaryWriter('./logs')# Device configurationdevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu') MNIST datasetdataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transforms.ToTensor(), download=True)#Data loaderdata_loader = torch.utils.data.DataLoader(dataset=dataset, batch_size=100, shuffle=True)# lly connected neural network with one hidden layerclass NeuralNet(nn.Module): def __init__(self, input_size=784, hidden_size=500, num_classes=10): super(NeuralNet, self).__init__() self.fc1 = nn.Linear(input_size, hidden_size) self.relu = nn.ReLU() self.fc2 = nn.Linear(hidden_size, num_classes) df forward(self, x): out = self.fc1(x) out = self.relu(out) out = self.fc2(out) return outmodel NeuralNet().to(device)# 损失函数和化器criterion = nn.CrossEntropyLoss()optimizer = torch.optim.Adam(model.parameters(), lr=0.00001)data_iter= iter(data_loader)iter_per_epoch = len(data_loader)total_step = 10000# Start tainingfor step in range(total_step): # Resetthe data_iter if (step + 1) % iter_per_epoch == 0: data_iter = iter(data_loader) # Fetchimages and labels images, labels = next(data_iter) # view作用是将多行tensor拼接为一行,reshape张量形状,如果你不知道你想要多少行,但确定列数,那么你可以将行数设置为-1(同样,不知道多少列,可以将列数设为-1) # size获取images的信息(行数,列数) images, labels = images.view(images.size(0), -1).to(device), labels.to(device) writer.add_graph(model, (images,)) # Forward pass outputs = model(images) loss = criterion(outputs, labels) writer.add_scalar('Loss', loss, step + 1) # Backwar and optimize optimizer.zero_grad() loss.backward() optimizer.step() # Computeaccuracy _, argmax = torch.max(outputs, 1) accuracy = (labels == argmax.squeeze()).float().mean() writer.add_scalar('accuracy', accuracy, step + 1) if (step + ) % 100 == 0: print('Step [{}/{}], Loss: {:.4f}, Acc: {:.2f}'.format(step + 1, total_step, loss.item(), accuracy.item()))

搞定之后会在文件列表里看到一个logs文件夹,记录就在里面。

在根目录下命令行输入

tensorboard --logidr logs

得到反馈后在浏览器输入"http://localhost:6006"就可以进入tensorboard。

add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX相关推荐

  1. PyTorch学习记录——PyTorch进阶训练技巧

    PyTorch学习记录--PyTorch进阶训练技巧 1.自定义损失函数 1.1 以函数的方式定义损失函数 1.2 以类的方式定义损失函数 1.3 比较与思考 2.动态调整学习率 2.1 官方提供的s ...

  2. Matlab函数功能学习记录(1)

    初学乍练之作 优秀的Matlab讲解: 博客园 Matlab - 基础知识 csdn matlab库函数大全 my Matlab函数功能学习记录(2) Matlab特殊字符.命令和函数 Matlab实 ...

  3. PyTorch 可视化工具 TensorboardX

    可视化教程 使用步骤 1. 导入包 2. 添加标量.模型图 所遇到问题 只显示 scalar,不显示 graph 解决办法 使用步骤 1. 导入包 from tensorboardX import S ...

  4. add函数 pytorch_Pytorch的高级训练,数据增强和实用程序 - pytorch中文网

    v0.1.3 JUST RELEASED - 包含显着的改进,错误修复和额外的支持.从版本中获取,或者拉主分支. 这个包提供了几件事情: 具有回调,约束和正则化程序的类似Keras的训练的高级模块. ...

  5. oracle生成主键函数,Oracle学习记录之使用自定义函数和触发器实现主键动态生成...

    很早就想自己写写Oracle的函数和触发器,最近一个来自课本的小案例给了我这个机会.现在把我做的东西记录下来,作为一个备忘或者入门的朋友们的参考. 案例介绍: 招投标管理系统(数据库设计). 数据表有 ...

  6. PyTorch学习记录——PyTorch生态

    Pytorch的强大并不仅局限于自身的易用性,更在于开源社区围绕PyTorch所产生的一系列工具包(一般是Python package)和程序,这些优秀的工具包极大地方便了PyTorch在特定领域的使 ...

  7. mysql navicat创建函数_MySQL 学习记录

    1.入门 1.1 什么是数据库? 简单的说,数据库(英文Database)就是一个存放数据的仓库,这个仓库是按照一定的数据结果(数据结构是指数据的组织形式或数据之间的联系)来组织.存储的,我们可以通过 ...

  8. 学习记录——Pytorch模型移植Android小例子

    提示:注意文章时效性,2022.04.02. 目录 前言 零.使用的环境 一.模型准备 1.导出模型 2.错误记录 2.1要载入完整模型(网络结构+权重参数) 2.2导出的模型文件格式 二.Andro ...

  9. add函数 pytorch_pytorch常用函数

    目录 自动求导 #encoding=utf8import torch from torch.autograd import Variable x = Variable(torch.Tensor([2] ...

最新文章

  1. (2)iOS用UICollectionView实现Gallery效果
  2. 整理一份详细的数据预处理方法
  3. Windows10看视频出现蓝屏重启
  4. python nDPI 流量分析框架 Nfstream 简介
  5. python3 修改字符串的四种方法 错误 'str' object does not support item assignment 解决方法
  6. jboss中控制台jmx-console 登录的用户名和密码设置
  7. VTK:图片之ImageValueRange
  8. 易点云在京发布璇玑调度系统 中小企业办公IT升级步伐加快
  9. mac的safari浏览器调试h5
  10. 12.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
  11. IIS Express 启用目录浏览
  12. 图像处理随笔——颜色空间
  13. java cmd测试_Java SE 9:使用CMD提示开发和测试简单模块(第3部分)
  14. iOS 上架App Store 遇到的坑
  15. 玩转电脑|电脑回收站还能这么玩,自定义图标让你的回收站与众不同
  16. UPnP 体系架构和基本原理 —— UPnP的描述文件
  17. Linux 修改环境变量设置的三种方式
  18. unity overrideSprite的使用
  19. Python数学建模—线性规划
  20. 什么是闭包,闭包的作用与好处是什么,何时使用闭包,对闭包的改进

热门文章

  1. 揭示生命的奥秘——生物信息学
  2. R包vegan的Mantel tests探索群落物种组成是否与环境相关
  3. 面对万亿级测序市场,纳米孔测序技术何去何从?
  4. Nature:梁冠翔等发现肠道病毒组在新生儿体内分段寄生的模式
  5. NBT:人类微生物组千万基因的参考基因集
  6. Microbiome: 16S rRNA基因拷贝数应该被校正吗?
  7. java表驱动法索引访问_表驱动法 - SegmentFault 思否
  8. Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE
  9. Seaborn使用violinplot函数可视化多分组小提琴图(violin plot)、每个小提琴图内部包含两个分组、使用inner函数设置在小提琴图中使用虚线显示分位数位置
  10. R语言ggplot2可视化分面图(faceting): ggplot2可视化分面图(facet_wrap)并设置不同的分面使用不同的坐标轴数值范围、以及不同的轴标签断点间隔breaks