深度神经网络结构可视化(Pytorch、Tensorflow、Keras、Caffe、MXNet、PaddlePaddle等主流框架)

本文代码存放于github上
参考

可视化深度神经网络结构

  本文我们使用三种方式对神经网络结构进行可视化,其中Netron工具适用范围最广,基本可用于大部分主流框架;hiddenlayer工具包适用于Pytorch、Tensorflow、Keras框架;而pytorchviz工具包只适用于Pytorch。(链接都指向github库)

  本文以Pytorch框架下的resnet34为例进行可视化,只是做简单说明,如果使用的是Tensorflow或者Keras可以使用hiddenlayer,因为hiddenlayer的github文档有详细的例子。

使用Netron方法可视化

先给个Netron的github文档的介绍,可见其适用范围之广
深度神经网络结构可视化(Pytorch、Tensorflow、Keras、Caffe、MXNet、PaddlePaddle等主流框架)_第1张图片

Netron是先导出onnx文件然后在网页进行可视化,可视化结果颜色漂亮,可以进行大小缩放等操作,且支持大部分框架。
我们创建resnet34然后将其导出为onnx文件。

import torch
import torchvision
net = torchvision.models.resnet34()
torch.onnx.export(net, torch.randn((1, 3, 224, 224)), 'resnet34.onnx')
  1. 此时当前路径下会生成一个"resnet34.onnx"文件

  2. 我们进入Netron在线可视化官网
    深度神经网络结构可视化(Pytorch、Tensorflow、Keras、Caffe、MXNet、PaddlePaddle等主流框架)_第2张图片

  3. 我们点击Open Model打开刚才保存的resnet34.onnx文件

  4. 此时我们得到了漂亮的可视化结果

深度神经网络结构可视化(Pytorch、Tensorflow、Keras、Caffe、MXNet、PaddlePaddle等主流框架)_第3张图片

使用hiddenlayer可视化

hiddenlayer是一个轻量级的工具包,可以用于可视化神经网络图和训练指标,适用于Pytorch, Tensorflow, Keras
下面代码的工作为

  1. 安装hiddenlayer包
  2. 创建resnet34()网络
  3. 修改为蓝色风格并保存可视化结果(会保存为pdf结果)
!pip install hiddenlayer
import torch
import torchvision
import hiddenlayer as hl
net = torchvision.models.resnet34()
hl_graph = hl.build_graph(net, torch.zeros((1, 3, 224, 224)))
hl_graph.theme = hl.graph.THEMES["blue"].copy()  # Two options: basic and blue
hl_graph.save("./resnet34")

其结果如图在这里插入图片描述

使用torchviz进行可视化

下面代码的工作为

  1. 安装torchviz包
  2. 创建resnet34网络
  3. 可视化
!pip install torchviz
import torch
import torchvision
from torchviz import make_dot

net = torchvision.models.resnet34()
y = net(torch.zeros(1, 3, 224, 224, dtype=torch.float, requires_grad=False))
make_dot(y, params=dict(net.named_parameters()))

可视化结果为

你可能感兴趣的:(pytorch,可视化,网络,神经网络,深度学习,tensorflow)