22

杂谈 | 那些酷炫的深度学习网络图怎么画出来的?

 5 years ago
source link: https://www.leiphone.com/news/201904/CcmIw5HgysoOglkF.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

雷锋网 AI 科技评论按,本文作者 言有三 ,个人公众号“有三AI”,原文地址: https://zhuanlan.zhihu.com/p/60146525 。雷锋网 (公众号:雷锋网) AI 科技评论获其授权转载。正文内容如下:

本文我们聊聊如何才能画出炫酷高大上的神经网络图,下面是常用的几种工具。

1. NN-SVG

这个工具可以非常方便的画出各种类型的图,是下面这位小哥哥开发的,来自于麻省理工学院弗兰克尔生物工程实验室, 该实验室开发可视化和机器学习工具用于分析生物数据。

rYFZvuy.jpg!web

github地址: https://github.com/zfrenchee

画图工具体验地址: http://alexlenail.me/NN-SVG/

可以绘制的图包括以节点形式展示的 FCNN style,这个特别适合传统的全连接神经网络的绘制。

7JjiMru.jpg!web

以平铺网络结构展示的 LeNet style,用二维的方式,适合查看每一层 featuremap 的大小和通道数目。

fmuYRnf.jpg!web

以三维 block 形式展现的 AlexNet style,可以更加真实地展示卷积过程中高维数据的尺度的变化,目前只支持卷积层和全连接层。

RJVzmaZ.jpg!web

这个工具可以导出非常高清的 SVG 图,值得体验。

2. PlotNeuralNet

这个工具是萨尔大学计算机科学专业的一个学生开发的,一看就像计算机学院的嘛。

jAfIBjy.jpg!web

首先我们看看效果,其github链接如下,将近 4000 star:

https://github.com/HarisIqbal88/PlotNeuralNet

看看人家这个 fcn-8 的可视化图,颜值奇高。

V3iIv2b.jpg!web

使用的门槛相对来说就高一些了,用 LaTex 语言编辑,所以可以发挥的空间就大了,你看下面这个 softmax 层,这就是会写代码的优势了。

ueYr22b.jpg!web

其中的一部分代码是这样的,会写吗。

\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。

3meAz2J.jpg!web

采用如下的语法直接配置网络,可以简单调整 x,y,z 等 3 个维度,github 链接如下:

https://cbovar.github.io/ConvNetDraw/

I7RVbem.jpg!web

使用方法如上图所示,只需输入模型结构中各层的参数配置。

jyeUZrf.jpg!web

挺好用的。不过它目标分辨率太低了,放大之后不清晰,达不到印刷的需求。

4. Draw_Convnet

这一个工具名叫 draw_convnet,由 Borealis 公司的员工 Gavin Weiguang Ding 提供。

z2QFvav.jpg!web

简单直接,是纯用 python 代码画图的,

https://github.com/gwding/draw_convnet

看看画的图如下,核心工具是 matplotlib,图不酷炫,但是好在规规矩矩,可以严格控制,论文用挺合适的。

niauInq.jpg!web

类似的工具还有: https://github.com/yu4u/convnet-drawer

5. Netscope

下面要说的是这个,我最常用的,caffe 的网络结构可视化工具,大名鼎鼎的 netscope,由斯坦福 AI Lab 的 Saumitro Dasgupta 开发,找不到照片就不放了,地址如下:

https://github.com/ethereon/netscope

fqiQr22.jpg!web

YZz2yee.jpg!web

左边放配置文件,右边出图,非常方便进行网络参数的调整和可视化。这种方式好就好在各个网络层之间的连接非常的方便。

其他

再分享一个有意思的,不是画什么正经图,但是把权重都画出来了。

http://scs.ryerson.ca/~aharley/vis/conv/

nMvqaam.jpg!web

RZVJJji.jpg!web

看了这么多,有人已经在偷偷笑了,上 PPT 呀,想要什么有什么,想怎么画就怎么画。

E3YvIf7.jpg!web

不过妹子呢?怎么不来开发一个粉色系的可视化工具呢?类似于这样的

63yINjU.jpg!web

那么,你都用什么画呢?欢迎留言分享一下!

雷锋网版权文章,未经授权禁止转载。详情见 转载须知


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK