如何畫出高級酷炫的神經網路圖?優秀程式設計師都用了這幾個工具
- 2019 年 10 月 4 日
- 筆記
作者 | 言有三
來源 | 有三AI(ID:yanyousan_ai)
【導讀】本文我們聊聊如何才能畫出炫酷高大上的神經網路圖,下面是常用的幾種工具。
1、NN-SVG
NN-SVG 可以非常方便的畫出各種類型的圖,其作者是下面這位小哥哥開發的,他來自於麻省理工學院弗蘭克爾生物工程實驗室, 該實驗室開發可視化和機器學習工具用於分析生物數據。
github地址:
https://github.com/zfrenchee
畫圖工具體驗地址:
http://alexlenail.me/NN-SVG/
使用這個工具可以繪製的圖包括以節點形式展示的FCNN style,這個特別適合傳統的全連接神經網路的繪製。
以平鋪網路結構展示的LeNet style,用二維的方式,適合查看每一層featuremap的大小和通道數目。
以三維block形式展現的AlexNet style,可以更加真實地展示卷積過程中高維數據的尺度的變化,目前只支援卷積層和全連接層。
這個工具可以導出非常高清的SVG圖,值得體驗。
2、PlotNeuralNet
這個工具是薩爾大學電腦科學專業的一個學生開發的,一看就像電腦學院的嘛。
首先我們看看效果,其github鏈接如下,將近4000 star:
https://github.com/HarisIqbal88/PlotNeuralNet
看看人家這個fcn-8的可視化圖,顏值奇高。
使用的門檻相對來說就高一些了,用LaTex語言編輯,所以可以發揮的空間就大了,你看下面這個softmax層,這就是會寫程式碼的優勢了。
其中的一部分程式碼是這樣的,會寫嗎。
pic[shift={(0,0,0)}] at (0,0,0) {Box={name=crp1,caption=SoftmaxLoss: $E_mathcal{S}$ ,% fill={rgb:blue,1.5;red,3.5;green,3.5;white,5},opacity=0.5,height=20,width=7,depth=20}};
相似的工具還有:
https://github.com/jettan/tikz_cnn
3、ConvNetDraw
ConvNetDraw 是一個使用配置命令的CNN神經網路畫圖工具,開發者是香港的一位程式設計師,Cédric cbovar。
採用如下的語法直接配置網路,可以簡單調整x,y,z等3個維度,github鏈接如下:
https://cbovar.github.io/ConvNetDraw/
使用方法如上圖所示,只需輸入模型結構中各層的參數配置。
挺好用的不過它目標解析度太低了,放大之後不清晰,達不到印刷的需求。
4、Draw_Convnet
這一個工具名叫draw_convnet,由Borealis公司的員工Gavin Weiguang Ding提供。
簡單直接,是純用python程式碼畫圖的,
https://github.com/gwding/draw_convnet
看看畫的圖如下,核心工具是matplotlib,圖不酷炫,但是好在規規矩矩,可以嚴格控制,論文用挺合適的。
類似的工具還有:
https://github.com/yu4u/convnet-drawer
5、Netscope
下面要說的是這個,我最常用的,caffe的網路結構可視化工具,大名鼎鼎的netscope,由斯坦福AILab的Saumitro Dasgupta開發,找不到照片就不放了,地址如下:
https://github.com/ethereon/netscope
左邊放配置文件,右邊出圖,非常方便進行網路參數的調整和可視化。這種方式好就好在各個網路層之間的連接非常的方便。
其他
再分享一個有意思的,不是畫什麼正經圖,但是把權重都畫出來了。
http://scs.ryerson.ca/~aharley/vis/conv/
看了這麼多,有人已經在偷偷笑了,上PPT呀,想要什麼有什麼,想怎麼畫就怎麼畫。
不知有沒有人想過開發一個粉色系的可視化工具呢?類似於下面這張圖的風格:
你使用的是哪種方式畫圖呢?有什麼好方法、好工具安利?評論區留言與大家分享吧!
(*本文為AI科技大本營轉載文章,轉載請聯繫作者)