作为科研人员,你可能经常需要用Latex写一些论文,那么其中有一款支持LaTex的工具tikz可以用来绘制各种各样的图,这可能是最方便的工具了。下面是有关该库的一些学习资料。
1、TikZ的官网-http://www.texample.net/tikz/
2、LateX在线编辑工具-https://www.overleaf.com
3、TikZ快速入门文档-http://cremeronline.com/LaTeX/minimaltikz.pdf
这个工具可能很多人都不知道,不过如果你知道神经网络的结构,而且你能很快的写出基本的代码,那么这款软件再方便不过啦,重要的是它的绘制结果是3D,比较好看,缺点是卷积层的颜色等比较固定,不适合进行设计。以下是有关该工具的几个有用链接。
1、ConvNetDraw的github-https://github.com/cbovar/ConvNetDraw
2、ConvNetDraw在线绘图网址-https://cbovar.github.io/ConvNetDraw/
这个软件可能很多人都使用过,我以前所有的图基本上都是用它完成的,它的确很强大,值得去推荐,但是我总想去寻找一个更优的工具。以下是使用Visio绘制的几张神经网络图。这个软件可能很多人都使用过,我以前所有的图基本上都是用它完成的,它的确很强大,值得去推荐,但是我总想去寻找一个更优的工具。以下是使用Visio绘制的几张神经网络图。
这个软件是一个类似Visio的软件,功能比较齐全,可以完成各种各样的图,不过我一直没有去尝试过。下面是有关该软件的一些有用链接。这个软件是一个雷士Visio的软件,功能比较齐全,可以完成各种各样的图,不过我一直没有去尝试过。下面是有关该软件的一些有用链接。
1、Inkscape官网-https://inkscape.org/zh/
2、Inkscape教程-https://inkscape.org/zh/learn/tutorials/
它是由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上,添加公式可以配合latexit使用。可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。嵌入在论文里导出成pdf,嵌入在网页里导出成svg。十分方便。由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上,添加公式可以配合latexit使用。可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。嵌入在论文里导出成pdf,嵌入在网页里导出成svg,十分方便。
这是一个Python工具,可以将代码转换为网络图显示出来。有关该工具的有用链接如下所示:
1、raw_convnet的github链接-https://github.com/gwding/draw_convnet
这是我偶然间寻找到的工具,基于Latex,话不多说,直接看效果你就决定要不要使用它啦。其相关链接如下所示:
1、PlotNeuralNet的github链接-https://github.com/HarisIqbal88/PlotNeuralNet
有关该软件的有用链接如下所示:
1、N-SVG的github链接-https://github.com/zfrenchee/NN-SVG
2、N-SVG的在线界面-http://alexlenail.me/NN-SVG/LeNet.html
针对节点较多的网络,不可避免需要投入大量尽量来写重复的脚本代码。用python编写了一个简单的dot脚本生成工具(MakeNN),可以很方便的输入参数生成nn结构图。
在dot里面label的玩法比较多,在上面看到的每个节点都是简单的一段文字,如果想要比较复杂的结构怎么办?那就通过编写代码生成吧。其对应的代码和结果如下所示。其相关的资源如下所示:
1、Graphviz的官方链接-https://www.graphviz.org/
使用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)
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即可获得可视化结果。
caffe源码中的tools文件夹下面有个draw_net.py文件。Python/draw_net.py, 这个文件,就是用来绘制网络模型的。也就是将网络模型由prototxt变成一张图片。
这个工具也好用于,可以保存好多在训练网络过程中的中间结果,同时也可以可视化整个网络的架构。其相关的有用资源如下所示:
1、tensorboard文档-https://www.tensorflow.org/guide/summaries_and_tensorboard
2、tensorboardgithub-https://github.com/tensorflow/tensorboard
一个可以用来绘制神经网络的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)
>>> nx.draw_random(G, **options)
>>> plt.subplot(222)
>>> nx.draw_circular(G, **options)
>>> plt.subplot(223)
>>> nx.draw_spectral(G, **options)
>>> plt.subplot(224)
>>> nx.draw_shell(G, nlist=[range(5,10), range(5)], **options)
Bokeh是一个交互式可视化库,面向现代Web浏览器进行演示。 它的目标是提供优雅,简洁的多功能图形构造,并通过非常大或流数据集的高性能交互来扩展此功能。 Bokeh可以帮助任何想要快速轻松地创建交互式图表,仪表板和数据应用程序的人。其相关资源链接如下所示:
1、Bokeh官网-https://bokeh.pydata.org/en/latest/
2、Bokeh文档-https://bokeh.pydata.org/en/latest/docs/user_guide.html#userguide
Daft是一个Python包,它使用matplotlib渲染像素完美的概率图形模型,以便在期刊或互联网上发布。 使用简短的Python脚本和直观的模型构建语法,您可以设计定向(贝叶斯网络,有向无环图)和无向(马尔可夫随机场)模型,并将它们保存为matplotlib支持的任何格式(包括PDF,PNG,EPS和SVG))。其相关资源如下所示:
1、daft官网链接-http://daft-pgm.org/
2、daft的github链接-https://github.com/dfm/daft
这是一款模型可视化神器,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] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:[email protected]),我会在第一时间回复大家,谢谢大家的关注。
[2] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
[3] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
[4] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊!!!
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