前言
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