本文长度1700字,建议阅读10分钟
本文对神经网络结构图的工具进行了全面、详细的介绍。
我们给出了一些内容
完整内容请在文末获取
乳胶
用于绘制网络节点图的 tikz 库
在控制论或智能领域,经常会遇到神经网络。 另外,在研究网络时,常常需要绘制网络节点图。 下面介绍的tikz库可以非常方便的画出这样的图。
以下示例显示了可重新排列的 Clos 网络:
卡尔曼滤波系统模型
神经网络绘图包
包装整体设计很好,使用起来也很方便。 作者使用该包写了一个布局良好的文档。
线性回归可以可视化为图表。 输出只是输入的加权和:
逻辑回归是一个强大的工具西西网络图绘制软件 破解版,但它只能形成简单的假设,因为它对输入值的线性组合进行操作(尽管尽快应用非线性函数)。 神经网络是由此类非线性混合元素层构建的,允许开发更复杂的假设。 这是通过堆叠 4 个逻辑回归网络以产生更复杂的行为来实现的。 在输入和输出节点之间加入额外的非线性混合阶段可以增加网络的复杂性,使其能够发展更高级的假设。 这个比较简单:
多层的存在可用于构造所有基本逻辑门。 这反过来又允许在神经网络中构建先进的数字处理逻辑——并且这种构建在学习阶段自动发生。 下面显示了一些示例,它们采用 0/1 的输入,并返回 true 的正输出和 false 的非正输出:
有了这些,建造其他门就变得微不足道了。 对值求反会产生反转的门,这些可用于构造更复杂的门。 因此,神经网络可以理解为“自我设计的微芯片”,能够进行数字和模拟处理:
奥姆格拉弗
OmniGraffle是The Omni Group出品的一款绘图软件。 它只能运行在 Mac OS X 和 iPad 平台上。 添加公式可以与 Latexit 一起使用。 它可以用来绘制图表、流程图、组织结构图和插图。 它还可以用来组织头脑中的信息、组织头脑风暴的结果、绘制思维导图、充当样式管理器,或者设计网页或 PDF 文档的原型。 嵌入论文并导出为pdf,嵌入网页并导出为svg。 很方便。
Python
绘制卷积网络
用于说明卷积神经网络 (ConvNet) 的 Python 脚本:
部分代码:
DSL
DSL深度神经网络,支持Torch和Caffe
DNNGraph - Haskell 中的深度神经网络模型生成 DSL
它由几个部分组成:
DSL 示例:
(部分)
约瑟夫·保罗·科恩博士
* 蒙特利尔大学蒙特利尔学习算法研究所博士后研究员
* 哈佛大学法洛研究员之友
*美国国家科学基金会研究生
与 mxnet 并排可视化 CNN 架构
卷积神经网络可以可视化为计算图,其中包含计算开始的输入节点和可以读取结果的输出节点。 这里使用 mx.viz.plot_network 方法比较 mxnet 提供的模型。 输出节点位于顶部,输入节点位于底部。
(部分)
Python+Graphviz
对于节点较多的网络来说,不可避免地要投入大量的时间来编写重复的脚本代码。 用python编写了一个简单的点脚本生成工具(MakeNN),可以方便地输入参数生成NN结构图。
部分代码:
Graphviz点
在 dot 中播放标签的方法有很多种。 您在上面看到的每个节点都是一段简单的文本。 如果你想要更复杂的结构怎么办? 如下所示:
对应的代码如下:
这还不够令人印象深刻,标签还支持 HTML 格式,所以你能想到的大多数节点都可以定义:
对应的代码如下:
接下来我们看一下集群的概念。 在dot中,以cluster开头的子图将被视为新的布局,而不是在原始图像的基础上继续操作。 例如:
对应的代码如下:
如果没有聚类西西网络图绘制软件 破解版,我们大概可以想象最终的结果会是什么样。 您可能想知道是否可以将节点直接指向集群? 答案是不! 对于这个需求,可以使用lhead:
生成的图像如下:
喀拉斯
使用Keras框架(可选择tensorflow或theano作为后端),可以绘制卷积神经网络的结构图。
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()
from keras.layers import Input, Convolution2D, MaxPooling2D, Flatten, Dense from keras.models import Model from keras.utils.visualize_util import plotinputs = Input(shape=(229, 229, 3))x = Convolution2D(32, 3, 3, subsample=(2, 2), border_mode='valid', dim_ordering='tf')(inputs)x = Flatten()(x)loss = Dense(32, activation='relu', name='loss')(x)model = Model(input=inputs, output=loss)model.compile(optimizer='rmsprop', loss='binary_crossentropy')# visualize model layout with pydot_ngplot(model, to_file='model2.png', show_shapes=True)
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
网络示波器
Netscope 是一个在线可视化工具,支持以 prototxt 格式描述的神经网络结构。 地址:
它可以用来可视化Caffe结构中prototxt格式的网络结构。 地址:
#/编辑
单击“Launch Editor”,将描述神经网络结构的 prototxt 文件复制到编辑框中,然后按 Shift+Enter 直接以图形方式显示网络结构。
例如,以mnist的LeNet网络结构为例,将Caffe中的example/mnist/lenet_train_test.prototxt文件内容复制到编译框中,按shift+回车,立即可以得到可视化的结构图。
喀拉斯
Python/draw_net.py,该文件用于绘制网络模型。 也就是将网络模型从prototxt转换成图片。
绘制 Lenet 模型
# sudo python python/draw_net.py Examples/mnist/lenet_train_test.prototxt netImage/lenet.png --rankdir=TB
(部分)
喀拉斯