pytorch 网络可视化(五):netron
引导共三种方法1. netron 包可视化网络1.1 安装 netron 包1.2 测试是否安装成功1.3 查看网络结构2. netron 网页版可视化网络2.1 进入网页2.2 上传网络模型数据3. netron 软件可视化网络3.1 安装 netron 软件3.2 查看网络结构共三种方法1. netron 包可视化网络1.1 安装 netron 包打开 Anaconda Prompt 进入自己
引导
共三种方法
1. netron 包可视化网络
1.1 安装 netron 包
打开 Anaconda Prompt 进入自己的 pytorch 环境,运行代码安装 netron 依赖包,如下(其中 pt 是我自己的 pytorch 环境):
1.2 测试是否安装成功
运行 python 进入交互式环境,导入 netron 如果不报错则表示安装成功。
1.3 查看网络结构
打开自己的 python 编辑器,解释器选择为自己 pytorch 环境下的 python.exe,运行测试代码:
# 针对有网络模型,但还没有训练保存 .pth 文件的情况
import netron
import torch.onnx
from torch.autograd import Variable
from torchvision.models import resnet18 # 以 resnet18 为例
myNet = resnet18() # 实例化 resnet18
x = torch.randn(16, 3, 40, 40) # 随机生成一个输入
modelData = "./demo.pth" # 定义模型数据保存的路径
# modelData = "./demo.onnx" # 有人说应该是 onnx 文件,但我尝试 pth 是可以的
torch.onnx.export(myNet, x, modelData) # 将 pytorch 模型以 onnx 格式导出并保存
netron.start(modelData) # 输出网络结构
# 针对已经存在网络模型 .pth 文件的情况
import netron
modelData = "./demo.pth" # 定义模型数据保存的路径
netron.start(modelData) # 输出网络结构
运行测试代码不会在控制台输出网络结构,而是直接打开自己电脑的浏览器进行显示。如果程序没有直接打开浏览器,自己复制或者直接点击控制台打印出的链接到浏览器打开即可。
最后测试代码的中的 resnet18 网络结构如图(图片太大,只贴一部分):
可以看出,在输出的网络结构中,不仅有整个网络的结构,还可以看出输入数据在网络中是如何改变的,这对于检查我们训练网络时出现的张量不匹配问题定位很有帮助。
2. netron 网页版可视化网络
netron 网页版链接:https://lutzroeder.github.io/netron/ 内容如下,点击 Accept 进入页面。由于是 github 链接,国内访问有时会不成功或者很慢,不建议用此方法。
点击 Open Model,选择自己训练好的一个网络模型数据,一般 pytorch 的网络模型数据都是 .pth 文件。
接下来网页就会显示该 .pth 文件对应的网络结构,如图是 resnet18 对应的部分网络结构:
3. netron 软件可视化网络
除了直接安装 netron 包和使用在线 netron 来显示网络模型外,也可以下载 netron 软件来查看网络输出模型。
github 下载链接:https://github.com/lutzroeder/Netron
github 下载比较慢或者打不开可以用其他链接下载: https://download.csdn.net/download/Wenyuanbo/20285395
在 github 中 Windows Download 处点击直接下载 .exe 可执行文件。
双击运行进入安装程序,选择 Accept,进入主界面选择 Open Model,打开自己保存的 pytorch 网络模型 .pth 文件,如图我打开的是 resnet18 对应的 .pth 文件,结果如图:
4. 可能遇到的问题
使用 pip install netron
安装的 netron 包在输出网络模型时会出现错误,RuntimeError: ONNX export failed: Couldn’t export operator aten::adaptive_avg_pool2d。
解决办法:将 AdaptiveAvgPool2d() 改成 AvgPool2d()。
更多推荐
所有评论(0)