本文代碼存放于github上
參考
可視化深度神經網路結構
??本文我們使用三種方式對神經網路結構進行可視化,其中Netron工具適用范圍最廣,基本可用于大部分主流框架;hiddenlayer工具包適用于Pytorch、Tensorflow、Keras框架;而pytorchviz工具包只適用于Pytorch,(鏈接都指向github庫)
??本文以Pytorch框架下的resnet34為例進行可視化,只是做簡單說明,如果使用的是Tensorflow或者Keras可以使用hiddenlayer,因為hiddenlayer的github檔案有詳細的例子,
使用Netron方法可視化
先給個Netron的github檔案的介紹,可見其適用范圍之廣

Netron是先匯出onnx檔案然后在網頁進行可視化,可視化結果顏色漂亮,可以進行大小縮放等操作,且支持大部分框架,
我們創建resnet34然后將其匯出為onnx檔案,
import torch
import torchvision
net = torchvision.models.resnet34()
torch.onnx.export(net, torch.randn((1, 3, 224, 224)), 'resnet34.onnx')
-
此時當前路徑下會生成一個"resnet34.onnx"檔案
-
我們進入Netron在線可視化官網

-
我們點擊Open Model打開剛才保存的resnet34.onnx檔案
-
此時我們得到了漂亮的可視化結果
使用hiddenlayer可視化
hiddenlayer是一個輕量級的工具包,可以用于可視化神經網路圖和訓練指標,適用于Pytorch, Tensorflow, Keras
下面代碼的作業為
- 安裝hiddenlayer包
- 創建resnet34()網路
- 修改為藍色風格并保存可視化結果(會保存為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進行可視化
下面代碼的作業為
- 安裝torchviz包
- 創建resnet34網路
- 可視化
!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()))
可視化結果為
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/278473.html
標籤:python
下一篇:【3】jupyter notebook【修改主題、字體、字號、代碼自動補全、變更作業目錄、添加目錄插件、解決工具列隱藏問題、修改默認瀏覽器、默認打開位置】
