22 款设计和可视化神经网络的工具

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”

总第 143 篇文章,本文大约 3000 字,阅读大约需要 10 分钟

前言

深度学习领域,最常见的就是各种网络模型,那么在写论文或者文章,介绍网络模型的时候,最好的办法当然就是展示代码画图,今天介绍的 Github 项目,就是整理了 22 个设计和可视化网络结构的工具,其地址如下:

https://github.com/ashishpatel26/Tools-to-Design-or-Visualize-Architecture-of-Neural-Network

22 款工具名称分别是:

  1. draw_convnet

  2. NNSVG

  3. PlotNeuralNet

  4. TensorBoard

  5. Caffe

  6. Matlab

  7. Keras.js

  8. Keras-sequential-ascii

  9. Netron

  10. DotNet

  11. Graphviz

  12. Keras Visualization

  13. Conx

  14. ENNUI

  15. NNet

  16. GraphCore

  17. Neataptic

  18. TensorSpace

  19. Netscope CNN Analyzer

  20. Monial

  21. Texample

  22. Quiver

本文首发于我的知乎专栏:https://zhuanlan.zhihu.com/p/147462170


工具

1. draw_convnet

Github: https://github.com/gwding/draw_convnet

star 数量:1.7k+

这个工具最后一次更新是 2018 年的时候,一个 python 脚本来绘制卷积神经网络的工具,效果如下所示:

2. NNSVG

网址:http://alexlenail.me/NN-SVG/LeNet.html

这个工具有 3 种网络结构风格,分别如下所示:

LeNet 类型:

AlexNet 类型

FCNN 类型

3. PlotNeuralNet

GitHub 地址:https://github.com/HarisIqbal88/PlotNeuralNet

star 数量:8.2k+

这个工具是基于 Latex 代码实现的用于绘制网络结构,可以看看使用例子看看这些网络结构图是如何绘制出来的。

效果如下所示:

FCN-8
FCN-32
安装

这里给出在 Ubuntu 和 windows 两个系统的安装方式:

ubuntu 16.04

sudo apt-get install texlive-latex-extra

Ubuntu 18.04.2 是基于这个网站:https://gist.github.com/rain1024/98dd5e2c6c8c28f9ea9d,安装命令如下:

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

  1. 首先下载并安装 MikTex,下载网站:https://miktex.org/download

  2. 其次,下载并安装 windows 的 bash 运行器,推荐这两个:

  • Git:https://git-scm.com/download/win

  • Cygwin:https://www.cygwin.com/

使用例子

安装完后就是使用,按照如下所示即可:

cd pyexamples/
bash ../tikzmake.sh test_simple

Python 的用法如下

  1. 先创建新的文件夹,并生成一个新的 python 代码文件:

$ mkdir my_project
$ cd my_project
vim my_arch.py
  1. 然后在新的代码文件 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()
  1. 最后,运行脚本

bash ../tikzmake.sh my_arch

4. TensorBoard

https://www.tensorflow.org/tensorboard/graphs

使用过 TensorFlow 的都应该知道这个绘图工具,TensorFlow 的可视化工具,查看网络结构、损失的变化、准确率等指标的变化情况等。

网络结构的效果如下图所示:

5. Caffe

https://github.com/BVLC/caffe/blob/master/python/caffe/draw.py

Caffe 的绘图工具,效果如下所示:

6. Matlab

http://www.mathworks.com/help/nnet/ref/view.html

Matlab 的绘图工具,效果如下所示:

7. Keras.js

https://transcranial.github.io/keras-js/#/inception-v3

Keras 的可视化工具,效果如下所示:

8. keras-sequential-ascii

https://github.com/stared/keras-sequential-ascii/

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 keras2asciikeras2ascii(model)

9. Netron

https://github.com/lutzroeder/Netron

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.jsmodel.json, .pb

  • TensorFlow.pb, .meta, .pbtxt, .ckpt, .index

其效果如下所示:

安装

安装方式,根据不同系统,有所不一样:

macOS

两种方式,任选一种:

  1. 下载 .dmg 文件,地址:https://github.com/lutzroeder/netron/releases/latest

  2. 运行命令 brew cask install netron

Linux

也是两种方式,任选其中一种:

  1. 下载 .AppImage 文件,下载地址:https://github.com/lutzroeder/netron/releases/latest

  2. 运行命令 snap install netron

Windows

也是两种方式,任选其中一种:

  1. 下载 .exe 文件,下载地址:https://github.com/lutzroeder/netron/releases/latest

  2. 运行命令 winget install netron

浏览器:浏览器运行地址:https://www.lutzroeder.com/ai/netron

Python 服务器

首先,运行安装命令 pip install netron,然后使用方法有两种:

  • 命令行,运行 netron [文件路径]

  • .py 代码中加入

import netron;netron.start('文件路径')

10. DotNet

https://github.com/martisak/dotnets

这个工具是一个简单的 python 脚本,利用 Graphviz 生成神经网络的图片。主要参考了文章:https://tgmstat.wordpress.com/2013/06/12/draw-neural-network-diagrams-graphviz/

用法如下:

在 MaxOS 上:

python dotnets.py | dot -Tpng | open -f -a /Applications/Preview.app

或者生成 PDF 文件

python dotnets.py | dot -Tpdf > test.pdf

其效果如下所示:

11. Graphviz

http://www.graphviz.org/

教程:https://tgmstat.wordpress.com/2013/06/12/draw-neural-network-diagrams-graphviz/

Graphviz 是一个开源的图可视化软件,它可以用抽象的图形和网络图来表示结构化信息。

其效果如下所示:

12. Keras Visualization

https://keras.io/api/utils/model_plotting_utils/

这是 Keras 库中的一个功能模块-- keras.utils.vis_utils 提供的绘制 Keras 网络模型(使用的是 graphviz

其效果如下所示:

13. Conx

https://conx.readthedocs.io/en/latest/index.html

Python 的一个第三方库 conx 可以通过函数net.picture() 来实现对带有激活函数网络的可视化,可以输出图片格式包括 SVG, PNG 或者是 PIL。

其效果如下所示:


14. ENNUI

https://math.mit.edu/ennui/

通过拖和拽相应的图形框来实现一个网络结构的可视化,下面是一个可视化 LeNet 的例子:

15. NNet

教程:https://beckmw.wordpress.com/2013/03/04/visualizing-neural-networks-from-the-nnet-package/

R 工具包,简单的使用例子如下:

data(infert, package="datasets")
plot(neuralnet(case~parity+induced+spontaneous, infert))

效果如下所示:

)

16. GraphCore

https://www.graphcore.ai/posts/what-does-machine-learning-look-like

GraphCore 主要是展示神经网络中操作的可视化结果,但也包括了网络结构的内容,比如每层的网络参数等。

下面展示了两个网络结构的可视化效果--AlexNet 和 ResNet50.

AlexNet

ResNet50

17. Neataptic

https://wagenaartje.github.io/neataptic/

Neataptic 提供了非常灵活的神经网络可视化形式

  • 神经元和突触可以通过一行代码进行删除;

  • 没有规定神经网络的结构必须包含哪些内容

这种灵活性允许通过神经进化(neuro-evolution)的方式为数据集调整网络结构的形状,并通过多线程来实现。

其效果如下图所示:

18. TensorSpace

https://tensorspace.org/

教程:https://www.freecodecamp.org/news/tensorspace-js-a-way-to-3d-visualize-neural-networks-in-browsers-2c0afd7648a8/

TensorSpace 是通过 TensorFlow.js,Three.js 和 Tween.js 构建的一个神经网络三维可视化框架。它提供了 APIs 来构建深度学习网络层,加载预训练模型以及在浏览器中就可以生成三维的可视化结构。通过应用它的 API 接口,可以更直观地可视化和理解通过 TensorFlow、Keras 和 TensorFlow.js 等构建的任何预训练模型。

效果如下图所示:

19. Netscope CNN Analyzer

http://dgschwend.github.io/netscope/quickstart.html

一款基于 web 端的可视化和分析卷积神经网络结构(或者是任意有向无环图),当前支持使用 Caffe 的 prototxt 形式。

效果如下图所示:

20. Monial

https://github.com/mlajtos/moniel

计算图的交互式表示法,展示例子如下所示,左边是输入,右侧就是对应结构的可视化结果。

21. Texample

http://www.texample.net/tikz/examples/neural-network/

这个工具也可以通过 LaTex 来实现一个神经网络结构的可视化,比如,一个 LaTex 的例子:

其可视化结果如下所示:

22. Quiver

github: https://github.com/keplr-io/quiver

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


参考文章:

  1. https://datascience.stackexchange.com/questions/12851/how-do-you-visualize-neural-network-architectures

  2. https://datascience.stackexchange.com/questions/2670/visualizing-deep-neural-network-training


小结

这 22 款工具的输出结果既有直接打印的,也有黑白图、彩色图、炫酷的球体可视化结果,以及三维可视化结果,基本都可以支持目前主流的深度学习框架,当然也有的是基于特定框架,比如 keras,实现的对应第三方库。

可以根据需求和使用的框架来进行选择,相信应该能够满足大部分人对可视化网络结构的需求。

可以点击文章底部“阅读原文”直接查看我的知乎文章,可以留言进行评论。


精选AI文章

1.  2020年计算机视觉学习指南

2. 是选择Keras还是PyTorch开始你的深度学习之旅呢?

3. 编写高效的PyTorch代码技巧(上)

4. 编写高效的PyTorch代码技巧(下)

5. 深度学习算法简要综述(上)

6. 深度学习算法简要综述(下)

7. 10个实用的机器学习建议

8. 实战|手把手教你训练一个基于Keras的多标签图像分类器

精选python文章

1.  python数据模型

2. python版代码整洁之道

3. 快速入门 Jupyter notebook

4. Jupyter 进阶教程

5. 10个高效的pandas技巧

精选教程资源文章

1. [资源分享] TensorFlow 官方中文版教程来了

2. [资源]推荐一些Python书籍和教程,入门和进阶的都有!

3. [Github项目推荐] 推荐三个助你更好利用Github的工具

4. Github上的各大高校资料以及国外公开课视频

5. GitHub上有哪些比较好的计算机视觉/机器视觉的项目?

欢迎关注我的微信公众号--算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!

 

如果觉得不错,在看、转发就是对小编的一个支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65482.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GUI可视化利器,让实时数据可视化so easy

PyQtGraph主要使用领域为:数学/科学/工程应用等; PyQtGraph为PyQt5/PyQt6/PySide2等图形用户界面 (GUI) 开发框架的一款强大可视化工具,底层为NumPy (快速科学计算)、Qt的GraphicsView框架 (2D图形可视化)、OpenGL (3D图形可视化); 相比于之前的工具,PyQtGraph在以下方面…

一款可视化在线图表工具

大家好,我是小z 发现一个宝藏数据网站,可以让我们告别代码绘制出精美的数据可视化作品(一些不想写代码的小伙伴们有福了哈)。PlotDB-你的资料数据化服务平台。是一个由宝岛台湾的数据公司制作而成,官网:https://plotdb.com/。下面…

让数据变得更直观:10款常用的可视化工具(解决99%的可视化大屏需求)

不管是跟上司汇报工作,还是向客户介绍项目,在工作中各种与【汇报】有关的事情,都离不开图表。漂亮而有视觉冲击力的图表可以给你的工作大大加分,让对方直观理解你想表达的内容,而大屏能将图表和数据展现到极致。 这篇…

数据可视化:大屏可视化设计全流程教程

什么是数据可视化 数据可视化是利用各类图表及图形化的设计手段将复杂不直观的数据有逻辑的呈现出来,而数据可视化工具就是生成这种呈现的软件。数据可视化为用户提供了交互式探索和分析数据的直观手段,使他们能够有效地识别有趣的模式、推断相关性和因…

数据可视化之数据可视化展示平台

一.前言 数据可视化展示平台,是指使用多种表格和图表类型来展示多维分析结果的数据分析展示方式,借助于图形化手段,清晰有效地传达与沟通信息。通过可视化分析,您可以美学形式与分析功能并进,直观地传达关键的方面与特…

值得推荐的13款可视化软件,快收藏!

数据可视化力求用图表结合的方式把所有的数据整合在某一图像上,这样呈现在观众眼前的画面不仅仅是美观,且比以往长篇大论或是密密麻麻的数据表格更直观易懂,更便于观察分析。到今年上半年为止,国内外已经有了很多发展的较好的数据…

B端大屏可视化设计参考网站分享、大数据可视化设计

B端大屏可视化设计参考网站分享、大数据可视化设计 大屏可视化参考网站: 1. 易知微 https://easyv.cloud/market 浅色风格的大屏可视化可以参考此网站的设计 2. 数字像素(原Tob design) https://www.shuzixs.com/#/works 有丰富的可视化界…

可视化:这十个数据可视化工具软件平台你必须知道

工欲善其事,必先利其器!选择一款好的数据可视化工具,除了能提高数据可视化的工作效率,还能让你的数据以酷炫的图表形式展示出来,从而方便后续的数据分析工作。随着可视化技术的发展,国内国外出现了很多数据…

数据可视化UI设计素材资源文件sketch大屏可视化数据展示

数据是企业的上帝之眼,数据可视化就发挥了很大的作用。很多从事B端产品设计的小伙伴在日常工作中遇到数据可视化的场景比较多,也得益于PSD素材较多,所以用的设计工具大多是Photoshop,但Photoshop用于UI设计太过臃肿,图…

可视化大屏设计工具平台

1、阿里云DataV 阿里云出品的专业大屏数据可视化服务, 旨在让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。 h…

基于Yolov7图像识别的CF自瞄

提示:本文只做学习和交流使用,本人不推荐使用,还是老老实实靠技术上分吧。 文章目录 前言 一、yolov7环境配置 二、yolov7代码与预训练模型下载 三、采集CF图像数据集 四、CF图像数据集标注 1.Anconda环境使用pip安装labelimg 2、数据…

阿里国际站商品发布odoo插件

阿里国际站商品发布odoo插件,支持全新的阿里api接口,支持手动批量,预约发布,功能强大,可支持odoo13 14版本,自行开发,提供源码,售后支持服务。 可试用。

iOS 集成阿里百川最新版(3.1.1.96) 实现淘宝授权登录以及调用淘宝客户端商品详情页...

公司最近要做第三方登录,由于是做导购项目,必不可少的有淘宝的授权登录。本来就是一个授权登录,没什么大不了的。但淘宝的无线开放业务——阿里百川更新的最新版本3.1.1.96,开发文档不是不详细,是很不详细。于是乎就自…

电商直播风起,阿里再次大象起舞

“大象跳舞”这个说法被大家所熟知,始自于IBM前任CEO郭士纳的自传《谁说大象不能跳舞(Who Says Elephants Can’t Dance?)》,在这本书中,郭士纳详实地介绍了他如何通过一步步改革让IBM起死回生,…

阿里巴巴发布AliGenie 语音开放平台 “智联网”战略又落一子

10月12日消息,在2017杭州•云栖大会上,阿里巴巴人工智能实验室发布了AliGenie 开放平台,主要包括三大部分:精灵技能市场、硬件开放平台、行业解决方案,全面赋能智能家居、新制造、新零售、酒店、航空等服务场景。 阿里…

阿里巴巴最新开源软件列表(建议收藏系列)

阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分。 有很多重量级的项目,例如LVS、Tengine,或者很有实践价值的中间件 今天小编为大家汇总了阿里开源的项目,快来看看吧! 服务框架 Dubbo Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能…

阿里推送以及厂商推送

oppo通道 在阿里控制台配置MasterSecret,和oppo平台的appserversecret一样,需要登录到oppo开放平台里的推送平台,配置8.0的渠道,否则8.0以上收不到通知,注意私信和公信的区别,私信需要申请开通。 先在oppo…

阿里巴巴发布 AliGenie 语音开放平台「智联网」战略又落一子

10 月 12 日消息,在 2017 杭州•云栖大会上,阿里巴巴人工智能实验室发布了 AliGenie 开放平台,主要包括三大部分:精灵技能市场、硬件开放平台、行业解决方案,全面赋能智能家居、新制造、新零售、酒店、航空等服务场景。…

阿里巴巴与淘宝网今日起帐号实现互通

阿里巴巴集团今日发布公告称,自即日起,阿里巴巴与淘宝网的帐号将实现互通。阿里巴巴方面介绍,用户在阿里巴巴中国站或淘宝网已经注册过会员帐号,可以使用任意一个帐号同时在阿里巴巴和淘宝网处于登录状态。不过,帐号互…

阿里巴巴开源产品列表

代码:https://github.com/alibaba taobao-kernel http://kernel.taobao.org/ https://github.com/alibaba/taobao-kernel 淘宝内核是淘宝内核开发团队基于RHEL6官方内核自己定制的内核,他与RHEL6系列内核的主要区别包括: 1. 修改了一些…