作为一名科研人员,也许你经常会在不同类型的论文中看到各种令人称赞的算法框图或者神经网络框图,作为一名AI从业者,你经常需要在你的论文、Poster或者Slide中添加一些神经网络框图,作为新手的我也经常遇到这个问题,但是一直并没有找到一个好的工具,很多大佬们都说利用PPT或者Visio等就能绘制成功,我的想法是这样的,尽管很多工具都能完成同样的一项工作,但是它们的效果和效率肯定是不一样的,你用Visio需要2个小时的一张图或者利用另外的一个工具仅仅需要花费20分钟,这可能就是所谓的区别,如果你感觉你的时间很多,浪费一点无所谓,请高手们绕过这篇博文。我花费了一点时间在网上找了很多有用的工具,在这里总结汇总一下,朋友们各取所好!

1、LaTeX的tikz库

作为科研人员,你可能经常需要用Latex写一些论文,那么其中有一款支持LaTex的工具tikz可以用来绘制各种各样的图,这可能是最方便的工具了。下面是有关该库的一些学习资料。
1、TikZ的官网-http://www.texample.net/tikz/
2、LateX在线编辑工具-https://www.overleaf.com
3、TikZ快速入门文档-http://cremeronline.com/LaTeX/minimaltikz.pdf

2、ConvNetDraw——已亲测

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

​​​​​​​3、Visio

这个软件可能很多人都使用过,我以前所有的图基本上都是用它完成的,它的确很强大,值得去推荐,但是我总想去寻找一个更优的工具。以下是使用Visio绘制的几张神经网络图。这个软件可能很多人都使用过,我以前所有的图基本上都是用它完成的,它的确很强大,值得去推荐,但是我总想去寻找一个更优的工具。以下是使用Visio绘制的几张神经网络图。

​​​​​​​4、Inkscape-自由绘图

这个软件是一个类似Visio的软件,功能比较齐全,可以完成各种各样的图,不过我一直没有去尝试过。下面是有关该软件的一些有用链接。这个软件是一个雷士Visio的软件,功能比较齐全,可以完成各种各样的图,不过我一直没有去尝试过。下面是有关该软件的一些有用链接。
1、Inkscape官网-https://inkscape.org/zh/
2、Inkscape教程-https://inkscape.org/zh/learn/tutorials/

​​​​​​​5、Omnigraffle

它是由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上,添加公式可以配合latexit使用。可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。嵌入在论文里导出成pdf,嵌入在网页里导出成svg。十分方便。由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上,添加公式可以配合latexit使用。可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。嵌入在论文里导出成pdf,嵌入在网页里导出成svg,十分方便。
6. draw_convnet
这是一个Python工具,可以将代码转换为网络图显示出来。有关该工具的有用链接如下所示:
1、raw_convnet的github链接-https://github.com/gwding/draw_convnet

​​​​​​​6、PlotNeuralNet

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

​​​​​​​7、NN-SVG——已亲测

有关该软件的有用链接如下所示:
1、N-SVG的github链接-https://github.com/zfrenchee/NN-SVG
2、N-SVG的在线界面-http://alexlenail.me/NN-SVG/LeNet.html

​​​​​​​8、Python + Graphviz

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

​​​​​​​9、Graphviz - dot

在dot里面label的玩法比较多,在上面看到的每个节点都是简单的一段文字,如果想要比较复杂的结构怎么办?那就通过编写代码生成吧。其对应的代码和结果如下所示。其相关的资源如下所示:
Graphviz的官方链接-https://www.graphviz.org/
11. Keras
10、使用Keras框架

(后端可选tensorflow或者theano),可以画出卷积神经网络的结构图。其相关资源如下所示:
1、keras英文文档-https://keras.io/
2、keras中文文档-https://keras.io/zh/
3、keras的github链接-https://github.com/keras-team/keras

from keras.layers import Input, Convolution2D, Flatten, Dense, Activationfrom keras.models import Sequentialfrom keras.optimizers import SGD , Adamfrom keras.initializations import normalfrom keras.utils.visualize_util import plot# apply a 3x3 convolution with 64 output filters on a 256x256 image:model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', dim_ordering='th',input_shape=(3, 256, 256)))# now model.output_shape == (None, 64, 256, 256)# add a 3x3 convolution on top, with 32 output filters:model.add(Convolution2D(32, 3, 3, border_mode='same', dim_ordering='th'))# now model.output_shape == (None, 32, 256, 256)adam = Adam(lr=1e-6)
model.compile(loss='mse',optimizer=adam)
print("We finish building the model")plot(model, to_file='model1.png', show_shapes=True)

11、Netscope——已亲测

是个支持prototxt格式描述的神经网络结构的在线可视工具,专门针对神经网络框架caffe而言。该工具的有用资源如下所示:
1、Netscope文档链接- https://ethereon.github.io/netscope/quickstart.html
2、Netscope的github链接-https://github.com/ethereon/netscope
3、Netscope在线链接-http://ethereon.github.io/netscope/#/editor
使用说明:直接打开相应的.prototxt文件复制到左边的黑色区域,然后按下Shift+Enter即可获得可视化结果。

12、 Caffe自带绘图工具
caffe源码中的tools文件夹下面有个draw_net.py文件。Python/draw_net.py, 这个文件,就是用来绘制网络模型的。也就是将网络模型由prototxt变成一张图片。13、 TensorBoard
这个工具也好用于,可以保存好多在训练网络过程中的中间结果,同时也可以可视化整个网络的架构。其相关的有用资源如下所示:
1、tensorboard文档-https://www.tensorflow.org/guide/summaries_and_tensorboard
2、tensorboardgithub-https://github.com/tensorflow/tensorboard
14、NetworkX
一个可以用来绘制神经网络的python包,其相应的资源如下所示:
1、NetworkX文档-https://networkx.github.io/documentation/latest/tutorial.html
2、NetworkX的github-https://github.com/networkx

>>> 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)


15、 Bokeh
Bokeh是一个交互式可视化库,面向现代Web浏览器进行演示。 它的目标是提供优雅,简洁的多功能图形构造,并通过非常大或流数据集的高性能交互来扩展此功能。 Bokeh可以帮助任何想要快速轻松地创建交互式图表,仪表板和数据应用程序的人。其相关资源链接如下所示:
1、Bokeh官网-https://bokeh.pydata.org/en/latest/
2、Bokeh文档-https://bokeh.pydata.org/en/latest/docs/user_guide.html#userguide

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

17、​​​​​​​Netron

这是一款模型可视化神器,Netron supports ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), CoreML (.mlmodel), Caffe2(predict_net.pb, predict_net.pbtxt), MXNet (.model, -symbol.json) and TensorFlow Lite (.tflite). Netron has experimental support for Caffe (.caffemodel, .prototxt), PyTorch (.pth), Torch (.t7), CNTK(.model, .cntk), PaddlePaddle (model), Darknet (.cfg), scikit-learn (.pkl), TensorFlow.js(model.json, .pb) and TensorFlow (.pb, .meta, .pbtxt).你应该很惊讶吧,它就是这么厉害。有关资源如下所示:
1、Netron官网-https://electronjs.org/apps/netron
2、Netron的github-https://github.com/lutzroeder/netron
3、Netron的在线界面-https://lutzroeder.github.io/netron/

其中还有很多工具,可能我并不知道,欢迎大家提出宝贵的意见,我来将它补充完成,送人玫瑰,手有余香。大家还常用”PPT“等的其它工具我就不说啦,总之,工具的选择需要根据大家的需求,哪个工具你用起来最顺手那就是最好的,但是工具之间肯定是有效率差别的,哈哈。

参考资料
1、https://datascience.stackexchange.com/questions/12851/how-do-you-visualize-neural-network-architectures
2、https://datascience.stackexchange.com/questions/14899/how-to-draw-deep-learning-network-architecture-diagrams
3、https://zhuanlan.zhihu.com/p/31920000
4、https://www.quora.com/What-tools-are-good-for-drawing-neural-network-architecture-diagrams

绘制神经网络工具汇总(重要)相关推荐

  1. 论文中绘制神经网络工具汇总

    目录 1. LaTeX的tikz库 2. ConvNetDraw 3. Visio 4. Inkscape-自由绘图 5. Omnigraffle 6. draw_convnet 7. PlotNeu ...

  2. 数据地图绘制工具汇总

    转自:http://www.civn.cn/p/11293.html CIVN之前介绍过TileMill.unfolding.Batchgeo等地图工具,Nathan Yau在他的著作<鲜活的数 ...

  3. 【Python】时间序列数据分析与预测之Python工具汇总

    本文中总结了十多种时间序列数据分析和预测工具和python库,在我们处理时间序列项目时,可以翻开本文,根据需要选择合适的工具,将会事半功倍! 在处理时间序列项目时,数据科学家或 ML 工程师通常会使用 ...

  4. 时间序列数据分析与预测之Python工具汇总

    ‍ ‍ 大家好,我是辰哥‍ ‍ 本文中硬核总结了十多种时间序列数据分析和预测工具和python库,在我们处理时间序列项目时,可以翻开本文,根据需要选择合适的工具,将会事半功倍! 在处理时间序列项目时, ...

  5. confluence 制作流程图_流程图绘制在线工具

    在线绘制流程图,各种组件都有 "工欲善其事,必先利其器."出自<论语>,孔子说的话.孔子告诉子贡,一个做手工或工艺的人,要想把工作完成,做得完善,应该先把工具准备好.如 ...

  6. NLP资源汇总和工具汇总

    NLP资源汇总和工具汇总 涉及内容包括:中英文敏感词.语言检测.中外手机/电话归属地/运营商查询.名字推断性别.手机号抽取.身份证抽取.邮箱抽取.中日文人名库.中文缩写库.拆字词典.词汇情感值.停用词 ...

  7. 全网最全json数据结构可视化工具汇总

    全网最全json数据结构可视化工具汇总 1.前言 2. 可视化工具 2.1 JSON Viewer Pro(推荐) 2.2 JSONGrid(推荐) 2.3 json2html(推荐) 2.4 Onl ...

  8. 模型转换、模型压缩、模型加速工具汇总

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 编辑丨机器学习AI算法工程 一.场景需求解读   在现实场景中,我们经常会遇到这样一个问题,即某篇论 ...

  9. 全球100款大数据工具汇总,入行必备

    全球100款大数据工具汇总,入行必备 1. Talend Open Studio 是第一家针对的数据集成工具市场的ETL(数据的提取Extract.传输Transform.载入Load)开源软件供应商 ...

  10. java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总

    原标题:JavaEE开发中最常用到的技术和工具汇总 今天千锋广州小编给大家来介绍一下关于目前JavaEE开发中最常用到的技术和工具的介绍,下面我们一起来看一下吧. 项目管理:Ant,项目管理事实上的标 ...

最新文章

  1. 重磅直播|慕尼黑工业大学博士详解室内SLAM中的几何约束
  2. 《2022城市大脑建设标准研究报告》在京正式发布
  3. JMeter初探-安装与使用
  4. mysql 导出表数据到另一张表_yz-Mysql数据库中一个表中的数据导出来到另外一个数据库的表格...
  5. 1、Tensorflow 之 saver与checkpoint
  6. 创建vue项目(一)搭建vue-cli、项目文件介绍、简单配置
  7. 【Pytorch神经网络实战案例】25 (带数据增强)基于迁移学习识别多种鸟类(CUB-200数据集)
  8. phpunit autoload.php,关于php:Composer不会创建所有需要的phpunit包含路径
  9. 题目1140:八皇后
  10. java URI 编码解码
  11. Android内核开发:如何统计系统的启动时间
  12. SQL查询数据以及排序
  13. 计算机软件答辩ppt范文,计算机毕业答辩ppt模板范文.ppt
  14. dns服务器未响应韩国,上海联通DNS
  15. C语言截取整数的某些位编程,C语言中位运算的巧用(转)
  16. Oracle索引概述
  17. 康托展开详解 -csdn博客
  18. 日常英语:Job interview
  19. 离散数学数理逻辑部分【2】
  20. 西门子二代精简屏无法正常显示中文字符时,如何给屏幕传送Chinese fonts?

热门文章

  1. 【BZOJ 3172】单词
  2. Java 字符串使用之性能优化实践
  3. 解决canvas合成图片大小错误、模糊以及跨域的问题
  4. 浅谈微服务下异常处理
  5. sqlserver为数据库表增加自增字段
  6. 细数2011TurboMail企业邮箱功能新飞跃
  7. CentOS桥接网卡配置
  8. 初识java atomic
  9. TCPClient例子(3)基于委托和事件的TcpHelper程序
  10. spring quartz执行两次问题