前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神经网络可视化(二)——收集的一些常见的网络可视化方法

神经网络可视化(二)——收集的一些常见的网络可视化方法

作者头像
小草AI
发布2019-06-02 23:36:48
3.6K0
发布2019-06-02 23:36:48
举报

前言

tensorflow,pytorch,mxnet每一个主流的深度学习框架都提供了相对应的可视化模板,那有没有一种方法更加具有通用性呢?我们会在论文中,相关文献中看到各种神经网络可视化的图形,有平面图形,三维立体图形,觉得很美观,你一定很好奇,这是不是使用绘图软件画的,还是只是用办公软件画的?对于人工智能研究者,那就太low了,人工智能都搞得定,还能被几幅图像给难住?本文带你一文看尽常用的一些神经网络可视化的开源项目。

前面已经介绍了小草最喜欢的一个可视化框架,netron,今天来看一下接下来的几种网络可视化途径吧!鉴于篇幅较多,本次为系列文章第二篇。

1、ConvNetDraw

这个工具可能很多人都不知道,不过如果你知道神经网络的结构,而且你能很快的写出基本的代码,那么这款软件再方便不过啦,重要的是它的绘制结果是3D,比较好看,缺点是卷积层的颜色等比较固定,不适合进行设计。以下是有关该工具的几个有用链接。

(1)ConvNetDraw的github-https://github.com/cbovar/ConvNetDraw

(2)ConvNetDraw在线绘图网址-https://cbovar.github.io/ConvNetDraw/

2、 draw_convnet

这是一个Python工具,可以将代码转换为网络图显示出来。有关该工具的有用链接如下所示:

raw_convnet的github链接-https://github.com/gwding/draw_convnet

3、PlotNeuralNet

这是我偶然间寻找到的工具,基于Latex,话不多说,直接看效果你就决定要不要使用它啦。其相关链接如下所示:

PlotNeuralNet的github链接-https://github.com/HarisIqbal88/PlotNeuralNet

4、NN-SVG

有关该软件的有用链接如下所示:

(1)N-SVG的github链接-https://github.com/zfrenchee/NN-SVG

(2)N-SVG的在线界面-http://alexlenail.me/NN-SVG/LeNet.html

5、Python + Graphviz

针对节点较多的网络,不可避免需要投入大量尽量来写重复的脚本代码。用python编写了一个简单的dot脚本生成工具(MakeNN),可以很方便的输入参数生成nn结构图。

6、Graphviz - dot

在dot里面label的玩法比较多,在上面看到的每个节点都是简单的一段文字,如果想要比较复杂的结构怎么办?那就通过编写代码生成吧。其对应的代码和结果如下所示。其相关的资源如下所示:

Graphviz的官方链接-https://www.graphviz.org/

7、 NetworkX

一个可以用来绘制神经网络的python包,其相应的资源如下所示:

1、NetworkX文档-https://networkx.github.io/documentation/latest/tutorial.html

2、NetworkX的github-https://github.com/networkx

代码语言:javascript
复制
>>> options = {
...     'node_color': 'black',
...     'node_size': 100,
...     'width': 3,
... }
>>> plt.subplot(221)
<matplotlib.axes._subplots.AxesSubplot object at ...>
>>> nx.draw_random(G, **options)
>>> plt.subplot(222)
<matplotlib.axes._subplots.AxesSubplot object at ...>
>>> nx.draw_circular(G, **options)
>>> plt.subplot(223)
<matplotlib.axes._subplots.AxesSubplot object at ...>
>>> nx.draw_spectral(G, **options)
>>> plt.subplot(224)
<matplotlib.axes._subplots.AxesSubplot object at ...>
>>> nx.draw_shell(G, nlist=[range(5,10), range(5)], **options)

8、 DAFT

Daft是一个Python包,它使用matplotlib渲染像素完美的概率图形模型,以便在期刊或互联网上发布。 使用简短的Python脚本和直观的模型构建语法,您可以设计定向(贝叶斯网络,有向无环图)和无向(马尔可夫随机场)模型,并将它们保存为matplotlib支持的任何格式(包括PDF,PNG,EPS和SVG))。其相关资源如下所示:

(1)daft官网链接-http://daft-pgm.org/

(2)daft的github链接-https://github.com/dfm/daft

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与python集中营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档