「雜談」一招,同時視覺化18個開源框架的網路模型結構和權重
深度學習開源框架眾多,對於開發者來說其中有一個很硬的需求,就是 模型結構和權重的視覺化。使用過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大深度學習開源框架快速入門專案

這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知識星球社群也可以一起分享。

https://www.toutiao.com/a6729405926102532616/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2655031/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Pytorch網路結構視覺化PyTorch視覺化
- Pytorch使用Tensorboard視覺化網路結構PyTorchORB視覺化
- 網路拓撲結構視覺化呈現方案視覺化
- 開源視覺大模型視覺大模型
- pytorch模型結構視覺化,可顯示每層的尺寸PyTorch模型視覺化
- 複雜SQL查詢和視覺化報表構建SQL視覺化
- VideoPipe視覺化影片結構化框架更新總結(2023-12-5)IDE視覺化框架
- VideoPipe視覺化影片結構化框架更新總結(2023-3-30)IDE視覺化框架
- Kubernetes網路的視覺化指南視覺化
- pytorch中網路特徵圖(feture map)、卷積核權重、卷積核最匹配樣本、類別啟用圖(Class Activation Map/CAM)、網路結構的視覺化方法PyTorch特徵卷積視覺化
- 11 個 AI 和機器學習模型的開源框架AI機器學習模型框架
- 神經網路原理的視覺化神經網路視覺化
- 模擬5億年的進化資訊,首個同時推理蛋白質序列、結構和功能的生物學大模型大模型
- 18 個實時音視訊開發中會用到開源專案
- 18個實時音視訊開發中會用到開源專案
- 視覺化編排的資料整合和分發開源框架Nifi輕鬆入門-上視覺化框架Nifi
- 讓程式設計師失業的Ying框架之視覺化建表和模型程式設計師框架視覺化模型
- C4 模型 - 視覺化架構設計模型視覺化架構
- 視覺化經典模型的對比實驗總結視覺化模型
- 28個資料視覺化圖表的總結和介紹視覺化
- 視覺化LSTM網路:探索「記憶」的形成視覺化
- 《Linux網路開發必學教程》18_網路通訊框架的完善Linux框架
- python資料視覺化-matplotlib入門(7)-從網路載入資料及資料視覺化的小總結Python視覺化
- 資料視覺化基本原理——視覺化模型視覺化模型
- 淺談 Fresco 框架結構框架
- 劍橋大學等開源RLgraph框架,讓強化學習測試視覺化框架強化學習視覺化
- 使用 TensorBoard 視覺化模型、資料和訓練ORB視覺化模型
- 我對《RAG/大模型/非結構化資料知識庫類產品》技術架構的思考、雜談大模型架構
- 開源的資料視覺化平臺 Kibana 日誌視覺化 mac 安裝筆記視覺化Mac筆記
- 卷積神經網路中的視覺化方法卷積神經網路視覺化
- 網路視覺化:流量產業鏈上的王者視覺化產業
- 「開源訪談」劉文豪:在視覺化大屏中摸清技術前行方向視覺化
- 大資料時代,人人都在談資料視覺化。大資料視覺化
- django 的類檢視和函式檢視-雜談Django函式
- 視覺化的工業網際網路 3D 展示視覺化3D
- 人力資源資料視覺化技術架構視覺化架構
- 阿里千問開源QVQ視覺推理媲美世界最佳模型阿里視覺模型
- 首個基於Mamba的MLLM來了!模型權重、訓練程式碼等已全部開源模型