深度學習開源架構衆多,對于開發者來說其中有一個很硬的需求,就是模型結構和權重的可視化。使用過Caffe的同學都因為強大的Netscope可以離線修改實時可視化網絡結構而暗爽,那其他的架構怎麼樣呢?
今天給大家介紹一個可以離線可視化各大深度學習開源架構模型結構和權重的項目,netron。
作者&編輯 | 言有三
1 項目介紹
項目開發者Lutz Roeder,一位來自于微軟Visual Studio團隊的小哥,按照他自己的介紹,就是在家搞點AI tools玩玩。
這是過去一年的contributions,基本就沒有停過,這是真正硬核的開源貢獻者呀,個人首頁https://www.lutzroeder.com/ai,有興趣可以去瞧瞧。
Netron是他開源的深度學習模型可視化工具,項目位址為:
https://github.com/lutzroeder/netron
目前支援哪些架構呢?
- ONNX (.onnx, .pb, .pbtxt)
- Keras (.h5, .keras)
- Core ML (.mlmodel)
- Caffe (.caffemodel, .prototxt)
- Caffe2 (predict_net.pb, predict_net.pbtxt)
- MXNet (.model, -symbol.json)
- TorchScript (.pt, .pth)
- NCNN (.param)
- TensorFlow Lite (.tflite)
- PyTorch (.pt, .pth)
- Torch (.t7)
- CNTK (.model, .cntk)
- Deeplearning4j(.zip)
- PaddlePaddle (.zip, __model__)
- Darknet (.cfg)
- scikit-learn (.pkl)
- TensorFlow.js (model.json, .pb)
- TensorFlow (.pb, .meta, .pbtxt).
共18個架構,除了chainer,matconvnet等架構基本上把數得上名字的架構一網打盡,下面是ONNX的可視化界面,很visual studio的感覺。
另一方面,小哥哥也是非常的貼心,提供了各大平台的安裝包!macOS的.dmg,Linux的.deb,Windows的.exe,還有浏覽器版本,Python伺服器版本,真是good man,小白們再也不用擔心環境配置問題。
2 可視化實驗
下面我們就來嘗試幾個架構的可視化結果,首先要祭出有三AI開源的12大深度學習開源架構的項目,從模型和資料接口定義,到訓練測試可視化,提供了全套代碼,位址如下:
https://github.com/longpeng2008/yousan.ai
具體的教程大家可以跳轉閱讀原文。
這12個架構我們都使用一個3層的卷積模型來完成一個圖像分類問題,下面挑選其中幾個常用的來體驗可視化效果。
2.1 Caffe
Caffe模型可視化的輸入可以是prototxt檔案和caffemodel檔案。下面首先分别可視化訓練網絡和測試網絡train.prototxt和deploy.prototxt,結果如下:
比起Netscope,是不是效果也不遑多讓。如果想要檢視某一個網絡層的細節,就可以點選該網絡層,結果如下,所有網絡配置參數細節皆可見,完美!
這就是全部了嗎?當然不,你還可以直接載入.caffemodel權重檔案,直接檢視每一個網絡層的權重!
老司機們可以從中簡單統計權重的分布,還可以一鍵導出參數為npy檔案,看到那個儲存小按鈕沒有,這就是細節,不得不再次給小哥哥點贊👍👍👍
2.2 keras
keras的可視化輸入是json格式的模型檔案,可以通過model.to_json()将模型存儲下來,然後載入.json檔案。
如果想檢視權重,就載入.h5檔案,結果如下,雖然沒有caffe的那麼漂亮,也是很直覺的,不過權重參數矩陣順序不太一樣。
2.3 tensorflow
要想可視化tensorflow的模型結構,就必須将模型存儲為pb格式,這樣就能同時儲存網絡結構和參數了,結果如下。
2.4 pytorch
pytorch的網絡結構可視化不支援,不過可以像keras一樣檢視pt權重檔案。如果想可視化網絡結構,可以使用yousan.ai項目中pytorch目錄下的visualize.py腳本。
2.5 Mxnet
Mxnet通過symbol接口定義網絡,網絡結構一般存在字尾為symbol.json的檔案中,是以載入該檔案即可進行可視化。權重的可視化原理類似,就不做贅述。
2.6 Darknet
DarkNet的網絡結構定義在cfg檔案中,載入該cfg檔案即可進行可視化。
其他開源架構的案例,大家可以去下載下傳我們的開源架構項目進行嘗試,感謝小哥作出的貢獻!
另外再安利一下我們之前的講述如何繪制更好看的網絡結構的文章,一起享用,保證更香。
總結
平時多留意一些好的工具,可以大大提升我們的學習效率,養成好的學習習慣,歡迎大家給我們推薦好的工具,在有三AI知識星球社群也可以一起分享。
有三AI夏季劃
有三AI夏季劃進行中,歡迎了解并加入,系統性成長為中級CV算法工程師。
轉載文章請背景聯系
侵權必究
往期精選
- 【完結】優秀的深度學習從業者都有哪些優秀的習慣
- 【雜談】如何學會看arxiv.org才能不錯過自己研究領域的最新論文?
- 【雜談】那些酷炫的深度學習網絡圖怎麼畫出來的?
- 【雜談】深度學習必備,各路免費爬蟲一舉拿下
- 【雜談】從GitHub上星星最多的男人開始發GitHub綜述資料
- 【雜談】提升寫代碼效率不得不做的三件事
- 【雜談】想成為機器學習學霸?先學會做筆記吧
- 【雜談】天下苦公衆号久矣,如何利用這幾類公衆号進行深度學習?
- 【雜談】扒一扒Reddit,Medium,Quora與知乎等國内外高品質AI社群與内容平台
- 【雜談】菜鳥誤入linux會有哪些慘痛的經曆
- 【雜談】AI工業界都有哪些值得參加的比賽?
- 【雜談】如何應對煩人的開源庫版本依賴-做一個心平氣和的程式員?
- 【雜談】手把手帶你配置深度學習環境
- 【雜談】為何有三AI隻做原創,從不轉載
- 【雜談】為什麼有三AI自斷财路,從來不接廣告
- 【雜談】什麼是我心目中深度學習算法工程師的标準
- 【雜談】白身,初識,不惑,有識,不可知,你處于深度學習工程師哪一重境界了