pytorch使用tensorboardX进行网络可视化

我们知道,对于pytorch上的搭建动态图的代码的可读性非常高,实际上对于一些比较简单的网络,比如alexnet,vgg阅读起来就能够脑补它们的网络结构,但是对于比较复杂的网络,如unet,直接从代码脑补网络结构可能就比较吃力

tensorflow上的tensorboard进行计算图的可视化可谓是非常成熟了,那么有没有可以可视化pytorch动态图的工具呢?

实际上是有的,前两天介绍了tensorboardX,pytorch上的一个功能强大的可视化工具,他可以直接可视化网络结构

关于如何使用tensorboard,这里还是用一个resnet18来举例子

先贴上代码

复制代码
 1 #-*-coding:utf-8-*-
 2 import torch
 3 import torchvision
 4 from torch.autograd import Variable
 5 from tensorboardX import SummaryWriter
 6 
 7 # 模拟输入数据
 8 input_data = Variable(torch.rand(16, 3, 224, 224))
 9 
10 # 从torchvision中导入已有模型
11 net = torchvision.models.resnet18()
12 
13 # 声明writer对象,保存的文件夹,异己名称
14 writer = SummaryWriter(log_dir='./log', comment='resnet18')
15 with writer:
16     writer.add_graph(net, (input_data,))
复制代码

torchvision工具包是pytorch自带的强大的工具包,里面有各种各样的模型以及各种数据集对象和对于数据进行transform的函数,我们从torchvision中导入已有的resnet18

之后声明一个writer对象

1 writer = SummaryWriter(log_dir='./log', comment='resnet18')

两个变量,分别表示事件存放的文件夹,以及comment表示事件的title

最后在writer内add graph,至于为什么要with writer,试了一下直接如下写,不work

1 writer.add_graph(net, (input_data,))  # 这种直接的方式并不work

我想的是,可能是因为需要inference中间的节点的data shape才要写成with的吧

 

仍然是运行tensorboard,在浏览器中打开

支持鼠标滚轮放大缩小,拖动,双击可以查看更细节的网络结构,而且数据流箭头上有数据的shape,使用起来非常方便

 

posted on   YongjieShi  阅读(11907)  评论(7编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示