前言
pytorch网络模型的可视化主要有以下几种方法:
1、使用Tensorboard
2、使用netron
3、使用torchviz
下面分别介绍一下,怎样使用这些网络可视化,这里以可视化alexnet为例
一、Tensorboard
之前的文章已经讲过什么是Tensorboard以及怎么安装和可视化了,这里不再做详细的描述,直接上代码
1.源码
import torch
from torch.utils.tensorboard import SummaryWriter
from torchviz import make_dot
import torchvision.models as models
if __name__ == "__main__":
alexnet = models.alexnet(pretrained=False) #加载alexnet,这里只需要网络架构,不需要预训练参数
fake_img = torch.rand(1, 3, 256, 256) #输入一个假图片
out = alexnet(fake_img)
# print(out)
# 1. 来用tensorboarf进行可视化
writer = SummaryWriter(comment='test_your_comment',filename_suffix="_test_your_filename_suffix")
writer.add_graph(alexnet, fake_img) # 模型及模型输入数据
# 2. 保存成pt文件后进行可视化
torch.save(alexnet, "alexnet.pt")
# 3. 使用graphviz进行可视化
out = alexnet(fake_img)
g = make_dot(out)
g.render('alexnet', view=False) # 这种方式会生成一个pdf文件
2.结果
二、netron
1.简介
netron就是一个可以支持各种框架的神经网络模型可视化工具。
netron的github: https://github.com/lutzroeder/Netron
2.运行上述代码
会出现一个“alexnet.pt”文件
3.打开方式
(1)使用netron网页版打开
浏览器中输入链接:https://lutzroeder.github.io/netron/
打开保存的alexnet.pt文件即可
(2)使用python直接读取
需要pip install netron安装
3.结果
三、grahviz
1.简介(比较强大)
Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源工具包。DOT是一种图形描述语言,非常简单的,Graphviz就是用来处理这种语言的工具。只需要简单了解一下DOT语言,就可以用Graphviz绘图了,它对程序员特别有用。
官网:http://www.graphviz.org/
2.会出现报错
见这篇博客:https://blog.csdn.net/srf_code/article/details/103108862