pytorch 网络可视化(五):netron

引导

    • 共三种方法
      • 1. netron 包可视化网络
        • 1.1 安装 netron 包
        • 1.2 测试是否安装成功
        • 1.3 查看网络结构
      • 2. netron 网页版可视化网络
      • 3. netron 软件可视化网络
      • 4. 可能遇到的问题

共三种方法

1. netron 包可视化网络

1.1 安装 netron 包

打开 Anaconda Prompt 进入自己的 pytorch 环境,运行代码安装 netron 依赖包,如下(其中 pt 是我自己的 pytorch 环境):

在这里插入图片描述

1.2 测试是否安装成功

运行 python 进入交互式环境,导入 netron 如果不报错则表示安装成功。
pytorch 网络可视化(五):netron_第1张图片

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)  # 输出网络结构

运行测试代码不会在控制台输出网络结构,而是直接打开自己电脑的浏览器进行显示。如果程序没有直接打开浏览器,自己复制或者直接点击控制台打印出的链接到浏览器打开即可。

pytorch 网络可视化(五):netron_第2张图片
最后测试代码的中的 resnet18 网络结构如图(图片太大,只贴一部分):

pytorch 网络可视化(五):netron_第3张图片

可以看出,在输出的网络结构中,不仅有整个网络的结构,还可以看出输入数据在网络中是如何改变的,这对于检查我们训练网络时出现的张量不匹配问题定位很有帮助。

2. netron 网页版可视化网络

netron 网页版链接:https://lutzroeder.github.io/netron/ 内容如下,点击 Accept 进入页面。由于是 github 链接,国内访问有时会不成功或者很慢,不建议用此方法。

pytorch 网络可视化(五):netron_第4张图片

点击 Open Model,选择自己训练好的一个网络模型数据,一般 pytorch 的网络模型数据都是 .pth 文件。

pytorch 网络可视化(五):netron_第5张图片

接下来网页就会显示该 .pth 文件对应的网络结构,如图是 resnet18 对应的部分网络结构:

pytorch 网络可视化(五):netron_第6张图片

3. netron 软件可视化网络

除了直接安装 netron 包和使用在线 netron 来显示网络模型外,也可以下载 netron 软件来查看网络输出模型。
github 下载链接:https://github.com/lutzroeder/Netron
github 下载比较慢或者打不开可以用其他链接下载: https://download.csdn.net/download/Wenyuanbo/20285395

在 github 中 Windows Download 处点击直接下载 .exe 可执行文件。

pytorch 网络可视化(五):netron_第7张图片
双击运行进入安装程序,选择 Accept,进入主界面选择 Open Model,打开自己保存的 pytorch 网络模型 .pth 文件,如图我打开的是 resnet18 对应的 .pth 文件,结果如图:

pytorch 网络可视化(五):netron_第8张图片

4. 可能遇到的问题

使用 pip install netron 安装的 netron 包在输出网络模型时会出现错误,RuntimeError: ONNX export failed: Couldn’t export operator aten::adaptive_avg_pool2d。

解决办法:将 AdaptiveAvgPool2d() 改成 AvgPool2d()。

你可能感兴趣的:(pytorch之网络可视化,人工智能,深度学习,神经网络,pytorch,机器学习)