pytorch使用tensorboardX进行loss可视化实例

作者:YongjieShi 时间:2021-04-07 20:17:36 

最近pytorch出了visdom,也没有怎么去研究它,主要是觉得tensorboardX已经够用,而且用起来也十分的简单

pip install tensorboardX

然后在代码里导入

from tensorboardX import SummaryWriter

然后声明一下自己将loss写到哪个路径下面

writer = SummaryWriter('./log')

然后就可以愉快的写loss到你得这个writer了

niter = epoch * len(train_loader) + i
writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'train_loss': loss.data.item()}, niter)

其中,add_scalars是将不同得变量添加到同一个图下,图的名称是add_scalars得第一个变量

然后为这个图中不同得曲线添加不同得标题,上面这一行代码

writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'train_loss': loss.data.item()}, niter)

后面得dict中得key是曲线的名称,后面的value是对应得append的值,再后面得niter是x坐标,这句话得意思就相当于,对于图名称为args.result_path + 'Train_val_loss'的图,对曲线名称为args.result_path+'train_loss'添加新的点,这个点为(niter, loss.data.item())

同样的,我可以画出val的loss

niter = epoch * len(train_loader) + i
writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'val_loss': mean_loss}, niter)

writer保存到了我们刚刚声明的路径'./log‘下面,然后终端启动tensorboard

tensorboard --logdir ./log --port 8890

不会用得进行tensorboard --help即可

然后进行端口映射就行了

实际上在使用的过程中,我发现了,如果你要保存的结果在各个子文件夹内,然后你在父文件夹运行tensorboard,就可以在浏览器看到各种结果,而不必再进行不同的端口映射

pytorch使用tensorboardX进行loss可视化实例

比如上面这个,我的resnet文件夹下有不同的我writer写入的文件,在父目录下启动tensorboard之后,

pytorch使用tensorboardX进行loss可视化实例

没毛病!

补充拓展:pytorch产生loss的计算图代码

废话不多说,直接上代码


import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
 def __init__(self):
   super(Net,self).__init__()
   self.conv1=nn.Conv2d(1,6,5)
   self.conv2=nn.Conv2d(6,16,5)
   self.fc1=nn.Linear(16*5*5,120)
   self.fc2=nn.Linear(120,84)
   self.fc3=nn.Linear(84,10)
 def forward(self,x):
   x=F.max_pool2d(F.relu(self.conv1(x)),(2,2))
   x=F.max_pool2d(F.relu(self.conv2(x)),2)
   x=x.view(x.size()[0],-1)
   print(x)
   x=F.relu(self.fc1(x))
   x=F.relu(self.fc2(x))
   x=self.fc3(x)
   return x
net=Net()
#params=list(net.parameters())
#for name,parameters in net.named_parameters():
#  print(name,':',parameters.size())
#print(len(params))
#print(net)
input=Variable(t.randn(1,1,32,32))
output=net(input)
#out.size()
target=Variable(t.arange(0,10))
criterion=nn.MSELoss()
loss=criterion(output,target)
loss.grad_fn

来源:https://blog.csdn.net/u013517182/article/details/93043942

标签:pytorch,tensorboardX,loss可视化
0
投稿

猜你喜欢

  • 使用python实现kmean算法

    2022-09-17 13:07:22
  • 数学公式“四又二分之一”

    2009-01-14 20:03:00
  • mysql中left join设置条件在on与where时的用法区别分析

    2024-01-12 15:05:52
  • python 实现学生信息管理系统的示例

    2021-05-01 01:37:24
  • 谈谈如何手动释放Python的内存

    2023-09-22 13:03:57
  • Python pytest装饰器总结(实例详解)

    2023-06-12 07:15:14
  • PHP中substr_count()函数获取子字符串出现次数的方法

    2023-11-14 14:28:17
  • Python中列表、字典、元组、集合数据结构整理

    2022-08-02 05:54:57
  • pytorch中的inference使用实例

    2023-07-24 16:22:56
  • php获取给定日期相差天数的方法分析

    2024-05-02 17:34:20
  • 显示你个性的鼠标指针

    2011-06-14 09:41:41
  • 微信小程序 picker-view 组件详解及简单实例

    2024-04-19 09:44:13
  • javascript实现简单的二级联动

    2024-04-19 09:49:15
  • 以SortedList为例详解Python的defaultdict对象使用自定义类型的方法

    2022-04-07 02:32:28
  • Python 字典与字符串的互转实例

    2023-06-27 07:51:22
  • 加载 Javascript 最佳实践

    2011-01-16 18:29:00
  • 前端面试之vue2和vue3的区别有哪些

    2024-04-28 10:54:38
  • TCP协议用在python和wifi模块之间详解

    2021-02-04 05:43:08
  • 关于python简单的爬虫操作(requests和etree)

    2022-01-08 02:17:27
  • python用match()函数爬数据方法详解

    2023-07-27 12:52:48
  • asp之家 网络编程 m.aspxhome.com