想要對一個深度學習模型有最直觀的瞭解那就是直接可視化其網絡結構,常見的網絡可視化工具有很多,今天就自己瞭解的進行簡單的總結,
tensorflow的模型結構可視化方法:
(1)使用自帶的tensorboard(需要自己在代碼中加入節點信息)
(2)使用netron工具打開(.pd 或者是.meta文件)
(3)第三方庫CNNGraph( https://github.com/huachao1001/CNNGraph)
(4)tensorspace.js (沒用過)
(5)高層API中keras的可視化
pytorch的模型結構可視化方法:
(1)使用tensorboardX(同tensorflow)
(2)使用graphviz加上torchviz (依賴於graphviz和GitHub第三方庫torchviz)
(3)使用微軟的tensorwatch (只能在jupyter notebook中使用)
(4)使用netron可視化工具(.pt 或者是 .pth 文件)
Mxnet模型可視化
(1)graphviz
(2)自帶的mxboard
(3)使用netron可視化工具
import mxnet as mx
from mxnet.gluon import loss as gloss,data as gdata,nn,utils as gutils
import os
os.environ["PATH"] += os.pathsep + 'D:\\anaconda\\content\\Library\\bin\\graphviz\\release\\bin' ##需要先下載好graphviz
# 定義網絡(gluon api)
net = nn.Sequential()
with net.name_scope():
net.add(nn.Dense(128, activation='relu'))
net.add(nn.Dense(64, activation='relu'))
net.add(nn.Dense(10))
# gluon api實現的圖,必須先用symbol初始化一下,注意,這個操作在進行訓練的時候是不需要的
input_symbol = mx.symbol.Variable('input_data')
net = net(input_symbol)
# 繪圖
mx.viz.plot_network(net)
結果如下,
Netron(支持tf, caffe, keras,mxnet等多種框架):
支持的框架support for: ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), CoreML (.mlmodel), Caffe2 (predict_net.pb, predict_net.pbtxt), MXNet (.model, -symbol.json) TensorFlow Lite (.tflite). |
experimental support for : Caffe (.caffemodel, .prototxt), PyTorch (.pth), Torch (.t7), CNTK (.model, .cntk), PaddlePaddle (model), Darknet (.cfg), scikit-learn (.pkl), TensorFlow.js (model.json, .pb) TensorFlow (.pb, .meta, .pbtxt). |
該工具有在線模式和離線模式兩種,在線的可以訪問該網站
https://lutzroeder.github.io/netron/
然後輸入自己的模型即可,也可以通過運行腳本,然後輸入本地網址映射
import netron
modelPath = "googlenet.pb"
netron.start(modelPath) ###運行該腳本會提示打開http://localhost:8080即可
第二種方式可以嘗試下載app,鏈接如下
https://github.com/lutzroeder/netron
神經網絡模型可視化的方法還有很多,學習之路,其修遠兮,吾等將上下而求索!
參考鏈接:
https://www.freesion.com/article/340667237/(PYTORCH 網絡結構可視化方法彙總(三種實現方法詳解))
https://blog.csdn.net/qqqzmy/article/details/86060131(輕量好用的神經網絡模型可視化工具netron)