作为科研人员,你可能经常需要用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")
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)
<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)
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/