本文我們聊聊如何才能畫出炫酷高大上的神經(jīng)網(wǎng)絡圖,下面是常用的幾種工具。
https://zhuanlan.zhihu.com/p/60146525
1. NN-SVG
這個工具可以非常方便的畫出各種類型的圖,是下面這位小哥哥開發(fā)的,來自于麻省理工學院弗蘭克爾生物工程實驗室, 該實驗室開發(fā)可視化和機器學習工具用于分析生物數(shù)據(jù)。
打開百度App,看更多圖片

github地址:https://github.com/zfrenchee
畫圖工具體驗地址:http://alexlenail.me/NN-SVG/
可以繪制的圖包括以節(jié)點形式展示的 FCNN style,這個特別適合傳統(tǒng)的全連接神經(jīng)網(wǎng)絡的繪制。

以平鋪網(wǎng)絡結構展示的 LeNet style,用二維的方式,適合查看每一層 featuremap 的大小和通道數(shù)目。

以三維 block 形式展現(xiàn)的 AlexNet style,可以更加真實地展示卷積過程中高維數(shù)據(jù)的尺度的變化,目前只支持卷積層和全連接層。

這個工具可以導出非常高清的 SVG 圖,值得體驗。
2. PlotNeuralNet

這個工具是薩爾大學計算機科學專業(yè)的一個學生開發(fā)的,一看就像計算機學院的嘛。
首先我們看看效果,其github鏈接如下,將近 4000 star:
https://github.com/HarisIqbal88/PlotNeuralNet
看看人家這個 fcn-8 的可視化圖,顏值奇高。

使用的門檻相對來說就高一些了,用 LaTex 語言編輯,所以可以發(fā)揮的空間就大了,你看下面這個 softmax 層,這就是會寫代碼的優(yōu)勢了。

其中的一部分代碼是這樣的,會寫嗎。
\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 神經(jīng)網(wǎng)絡畫圖工具,開發(fā)者是香港的一位程序員,Cédric cbovar。

采用如下的語法直接配置網(wǎng)絡,可以簡單調(diào)整 x,y,z 等 3 個維度,github 鏈接如下:
https://cbovar.github.io/ConvNetDraw/

使用方法如上圖所示,只需輸入模型結構中各層的參數(shù)配置。

挺好用的。不過它目標分辨率太低了,放大之后不清晰,達不到印刷的需求。
4. Draw_Convnet

這一個工具名叫 draw_convnet,由 Borealis 公司的員工 Gavin Weiguang Ding 提供。
簡單直接,是純用 python 代碼畫圖的,
https://github.com/gwding/draw_convnet
看看畫的圖如下,核心工具是 matplotlib,圖不酷炫,但是好在規(guī)規(guī)矩矩,可以嚴格控制,論文用挺合適的。

類似的工具還有:https://github.com/yu4u/convnet-drawer
5. Netscope
下面要說的是這個,我最常用的,caffe 的網(wǎng)絡結構可視化工具,大名鼎鼎的 netscope,由斯坦福 AI Lab 的 Saumitro Dasgupta 開發(fā),找不到照片就不放了,地址如下:
https://github.com/ethereon/netscope


左邊放配置文件,右邊出圖,非常方便進行網(wǎng)絡參數(shù)的調(diào)整和可視化。這種方式好就好在各個網(wǎng)絡層之間的連接非常的方便。
其他
再分享一個有意思的,不是畫什么正經(jīng)圖,但是把權重都畫出來了。
http://scs.ryerson.ca/~aharley/vis/conv/


看了這么多,有人已經(jīng)在偷偷笑了,上 PPT 呀,想要什么有什么,想怎么畫就怎么畫。

不過妹子呢?怎么不來開發(fā)一個粉色系的可視化工具呢?類似于這樣的
