盘点 | 22 款神经网络设计和可视化工具
2020/6/13 6:26:21
本文主要是介绍盘点 | 22 款神经网络设计和可视化工具,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
深度学习领域,最常见的就是各种网络模型,那么在写论文或者文章,介绍网络模型的时候,最好的办法当然就是展示代码画图,今天介绍的 Github 项目,就是整理了 22 个设计和可视化网络结构的工具,其地址如下:
github.com/ashishpatel…
22 款工具名称分别是:
- draw_convnet
- NNSVG
- PlotNeuralNet
- TensorBoard
- Caffe
- Matlab
- Keras.js
- Keras-sequential-ascii
- Netron
- DotNet
- Graphviz
- Keras Visualization
- Conx
- ENNUI
- NNet
- GraphCore
- Neataptic
- TensorSpace
- Netscope CNN Analyzer
- Monial
- Texample
- Quiver
工具
1. draw_convnet
Github: github.com/gwding/draw…
star 数量:1.7k+
这个工具最后一次更新是 2018 年的时候,一个 python 脚本来绘制卷积神经网络的工具,效果如下所示:
2. NNSVG
网址:alexlenail.me/NN-SVG/LeNe…
这个工具有 3 种网络结构风格,分别如下所示:
LeNet 类型:
AlexNet 类型
FCNN 类型
3. PlotNeuralNet
GitHub 地址:github.com/HarisIqbal8…
star 数量:8.2k+
这个工具是基于 Latex 代码实现的用于绘制网络结构,可以看看使用例子看看这些网络结构图是如何绘制出来的。
效果如下所示:
安装
这里给出在 Ubuntu 和 windows 两个系统的安装方式:
ubuntu 16.04
sudo apt-get install texlive-latex-extra 复制代码
Ubuntu 18.04.2 是基于这个网站:gist.github.com/rain1024/98…
sudo apt-get install texlive-latex-base sudo apt-get install texlive-fonts-recommended sudo apt-get install texlive-fonts-extra sudo apt-get install texlive-latex-extra 复制代码
Windows
- 首先下载并安装 MikTex,下载网站:miktex.org/download
- 其次,下载并安装 windows 的 bash 运行器,推荐这两个:
- Git:git-scm.com/download/wi…
- Cygwin:www.cygwin.com/
使用例子
安装完后就是使用,按照如下所示即可:
cd pyexamples/ bash ../tikzmake.sh test_simple 复制代码
Python 的用法如下:
- 先创建新的文件夹,并生成一个新的 python 代码文件:
$ mkdir my_project $ cd my_project vim my_arch.py 复制代码
- 然后在新的代码文件
my_arch.py
中添加这段代码,用于定义你的网络结构,主要是不同类型网络层的参数,包括输入输出数量、卷积核数量等
import sys sys.path.append('../') from pycore.tikzeng import * # defined your arch arch = [ to_head( '..' ), to_cor(), to_begin(), to_Conv("conv1", 512, 64, offset="(0,0,0)", to="(0,0,0)", height=64, depth=64, width=2 ), to_Pool("pool1", offset="(0,0,0)", to="(conv1-east)"), to_Conv("conv2", 128, 64, offset="(1,0,0)", to="(pool1-east)", height=32, depth=32, width=2 ), to_connection( "pool1", "conv2"), to_Pool("pool2", offset="(0,0,0)", to="(conv2-east)", height=28, depth=28, width=1), to_SoftMax("soft1", 10 ,"(3,0,0)", "(pool1-east)", caption="SOFT" ), to_connection("pool2", "soft1"), to_end() ] def main(): namefile = str(sys.argv[0]).split('.')[0] to_generate(arch, namefile + '.tex' ) if __name__ == '__main__': main() 复制代码
- 最后,运行脚本
bash ../tikzmake.sh my_arch 复制代码
4. TensorBoard
www.tensorflow.org/tensorboard…
使用过 TensorFlow 的都应该知道这个绘图工具,TensorFlow 的可视化工具,查看网络结构、损失的变化、准确率等指标的变化情况等。
网络结构的效果如下图所示:
5. Caffe
github.com/BVLC/caffe/…
Caffe 的绘图工具,效果如下所示:
6. Matlab
www.mathworks.com/help/nnet/r…
Matlab 的绘图工具,效果如下所示:
7. Keras.js
transcranial.github.io/keras-js/#/…
Keras 的可视化工具,效果如下所示:
8. keras-sequential-ascii
github.com/stared/kera…
Keras 的一个第三方库,用于对序列模型的网络结构和参数进行检查,直接打印出来结果,比如,VGG 16 的网络结构如下所示,每层网络的参数维度,参数的数量以及占整个网络参数的比例都会展示出来:
安装
通过 PyPI:
pip install keras_sequential_ascii 复制代码
直接通过 github 仓库:
pip install git+git://github.com/stared/keras-sequential-ascii.git 复制代码
使用例子
在代码中添加:
from keras_sequential_ascii import keras2ascii keras2ascii(model) 复制代码
9. Netron
github.com/lutzroeder/…
Star 数量:9.7k+
简介
Netron 可以可视化神经网络,深度学习和机器学习模型,目前支持的网络框架包括:
-
ONNX:
.onnx, .pb, .pbtxt
文件 -
Keras:
.h5,.keras
文件 -
Core ML:
.mlmodel
-
Caffe:
.caffemodel, .prototxt
-
Caffe2:
predict_net.pb, predict_net.pbtxt
-
Darknet:
.cfg
-
MXNet:
.model, -symbol.json
-
ncnn:
.param
-
TensorFlow Lite:
.tflite
另外,Netron 也有实验支持这些框架:
- TorchScript:
.pt, .pth
- PyTorch:
.pt, .pth
- Torch:
.t7
- Arm NN:
.armnn
- Barracuda:
.nn
- BigDL
.bigdl
,.model
- Chainer :
.npz
,.h5
- CNTK :
.model
,.cntk
- Deeplearning4j:
.zip
- MediaPipe:
.pbtxt
- ML.NET:
.zip
- MNN:
.mnn
- OpenVINO :
.xml
- PaddlePaddle :
.zip
,__model__
- scikit-learn :
.pkl
- Tengine :
.tmfile
- TensorFlow.js :
model.json
,.pb
- TensorFlow :
.pb
,.meta
,.pbtxt
,.ckpt
,.index
其效果如下所示:
安装
安装方式,根据不同系统,有所不一样:
macOS
两种方式,任选一种:
- 下载
.dmg
文件,地址:github.com/lutzroeder/… - 运行命令
brew cask install netron
Linux
也是两种方式,任选其中一种:
- 下载
.AppImage
文件,下载地址:github.com/lutzroeder/… - 运行命令
snap install netron
Windows
也是两种方式,任选其中一种:
- 下载
.exe
文件,下载地址:github.com/lutzroeder/… - 运行命令
winget install netron
浏览器:浏览器运行地址:www.lutzroeder.com/ai/netron
Python 服务器:
首先,运行安装命令 pip install netron
,然后使用方法有两种:
- 命令行,运行
netron [文件路径]
.py
代码中加入
import netron; netron.start('文件路径') 复制代码
10. DotNet
github.com/martisak/do…
这个工具是一个简单的 python 脚本,利用 Graphviz
生成神经网络的图片。主要参考了文章:tgmstat.wordpress.com/2013/06/12/…
用法如下:
在 MaxOS 上:
python dotnets.py | dot -Tpng | open -f -a /Applications/Preview.app 复制代码
或者生成 PDF 文件
python dotnets.py | dot -Tpdf > test.pdf 复制代码
其效果如下所示:
11. Graphviz
www.graphviz.org/
教程:tgmstat.wordpress.com/2013/06/12/…
Graphviz
是一个开源的图可视化软件,它可以用抽象的图形和网络图来表示结构化信息。
其效果如下所示:
12. Keras Visualization
keras.io/api/utils/m…
这是 Keras 库中的一个功能模块-- keras.utils.vis_utils
提供的绘制 Keras 网络模型(使用的是 graphviz
)
其效果如下所示:
13. Conx
conx.readthedocs.io/en/latest/i…
Python 的一个第三方库 conx
可以通过函数net.picture()
来实现对带有激活函数网络的可视化,可以输出图片格式包括 SVG, PNG 或者是 PIL。
其效果如下所示:
)14. ENNUI
math.mit.edu/ennui/
通过拖和拽相应的图形框来实现一个网络结构的可视化,下面是一个可视化 LeNet 的例子:
15. NNet
教程:beckmw.wordpress.com/2013/03/04/…
R 工具包,简单的使用例子如下:
data(infert, package="datasets") plot(neuralnet(case~parity+induced+spontaneous, infert)) 复制代码
效果如下所示:
)16. GraphCore
www.graphcore.ai/posts/what-…
GraphCore 主要是展示神经网络中操作的可视化结果,但也包括了网络结构的内容,比如每层的网络参数等。
下面展示了两个网络结构的可视化效果--AlexNet 和 ResNet50.
AlexNet
ResNet50
17. Neataptic
wagenaartje.github.io/neataptic/
Neataptic 提供了非常灵活的神经网络可视化形式
- 神经元和突触可以通过一行代码进行删除;
- 没有规定神经网络的结构必须包含哪些内容
这种灵活性允许通过神经进化(neuro-evolution)的方式为数据集调整网络结构的形状,并通过多线程来实现。
其效果如下图所示:
18. TensorSpace
tensorspace.org/
教程:www.freecodecamp.org/news/tensor…
TensorSpace 是通过 TensorFlow.js,Three.js 和 Tween.js 构建的一个神经网络三维可视化框架。它提供了 APIs 来构建深度学习网络层,加载预训练模型以及在浏览器中就可以生成三维的可视化结构。通过应用它的 API 接口,可以更直观地可视化和理解通过 TensorFlow、Keras 和 TensorFlow.js 等构建的任何预训练模型。
效果如下图所示:
19. Netscope CNN Analyzer
dgschwend.github.io/netscope/qu…
一款基于 web 端的可视化和分析卷积神经网络结构(或者是任意有向无环图),当前支持使用 Caffe 的 prototxt 形式。
效果如下图所示:
20. Monial
github.com/mlajtos/mon…
计算图的交互式表示法,展示例子如下所示,左边是输入,右侧就是对应结构的可视化结果。
21. Texample
www.texample.net/tikz/exampl…
这个工具也可以通过 LaTex 来实现一个神经网络结构的可视化,比如,一个 LaTex 的例子:
其可视化结果如下所示:
22. Quiver
github: github.com/keplr-io/qu…
Star 数量:1.5k
Keras 的一款交互式可视化卷积特征的一个工具
展示例子如下所示:
安装方式
两种方式,直接用 pip
pip install quiver_engine 复制代码
或者通过 GitHub 仓库的方式:
pip install git+git://github.com/keplr-io/quiver.git 复制代码
使用例子
首先构建你的 keras 模型:
model = Model(...) 复制代码
接着通过一行代码来发布可视化的展示板:
quiver_engine.server.launch(model, classes=['cat','dog'], input_folder='./imgs') 复制代码
最后在刚刚设置的文件夹中就可以看到每个网络层的可视化结果。
如果是想在浏览器中查看,代码如下:
from quiver_engine import server server.launch(model) 复制代码
默认的地址是 localhost:5000
参考文章:
- datascience.stackexchange.com/questions/1…
- datascience.stackexchange.com/questions/2…
小结
这 22 款工具的输出结果既有直接打印的,也有黑白图、彩色图、炫酷的球体可视化结果,以及三维可视化结果,基本都可以支持目前主流的深度学习框架,当然也有的是基于特定框架,比如 keras,实现的对应第三方库。
可以根据需求和使用的框架来进行选择,相信应该能够满足大部分人对可视化网络结构的需求。
我的滴滴云专属AI大师码:9192,购买滴滴云GPU等AI产品输入大师码享9折优惠。
点击 www.didiyun.com 前往滴滴云官网购买。
这篇关于盘点 | 22 款神经网络设计和可视化工具的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27揭秘Fluss 与 Kafka、Paimon 的区别与联系
- 2024-12-27顶级情感分析接口:7个高效API推荐
- 2024-12-26从零开始学习贪心算法
- 2024-12-26线性模型入门教程:基础概念与实践指南
- 2024-12-25探索随机贪心算法:从入门到初级应用
- 2024-12-25树形模型进阶:从入门到初级应用教程
- 2024-12-25搜索算法进阶:新手入门教程
- 2024-12-25算法高级进阶:新手与初级用户指南
- 2024-12-25随机贪心算法进阶:初学者的详细指南
- 2024-12-25贪心算法进阶:从入门到实践