主要内容

Dagnetwork.

针对深度学习的针对非循环图(DAG)网络

描述

DAG网络是一种用于深度学习的神经网络,其层排列为有向无环图。一个DAG网络可以有一个更复杂的架构,在这个架构中,各层有来自多个层的输入和向多个层的输出。

创建

有几种方法可以创造一个Dagnetwork.对象:

笔记

要了解其他预先训练过的网络,请看预先训练的深度神经网络

特性

展开全部

此属性是只读的。

网络层,指定为大批。

此属性是只读的。

层连接,指定为具有两列的表。

每个表行表示图层图中的连接。第一列,,指定每个连接的来源。第二列,目的地,指定每个连接的目标。连接源和目的地是层名称或具有表单'layername / ioname',在那里“IOName”是输入或输出的图层的名称。

数据类型:表格

此属性是只读的。

网络输入层名称,指定为字符向量的单元格数组。

数据类型:细胞

网络输出层名称,指定为字符向量的单元格数组。

数据类型:细胞

对象功能

激活 计算深度学习网络层激活
分类 使用培训的深度学习神经网络对数据进行分类
预测 使用培训的深度学习神经网络预测响应
阴谋 绘制神经网络层图

例子

全部折叠

为深度学习创建一个简单的有向非循环图(DAG)网络。培训网络以分类数字图像。此示例中的简单网络包括:

  • 主要分支,层依次连接。

  • 一种快捷连接包含单个1×1卷积层。快捷连接使参数渐变使得从输出层更容易流到网络的早期层。

将网络的主分支创建为层数组。添加层和多个输入元素明智。指定添加图层的输入数。要稍后轻松添加连接,请为第一个Relu层和添加层指定名称。

图层= [imageInputlayer([28 28 1])卷积2dlayer(5,16,“填充”“相同”) batchNormalizationLayer reluLayer ('姓名''relu_1')卷积2dlayer(3,32,“填充”“相同”'走吧',2)BatchnormalizationLayer Rufulayer卷积2dlayer(3,32,“填充”“相同”)BatchnormalizationLayer Rufulayer附加层(2,'姓名''添加')普通Pooling2dlayer(2,'走吧',2)全连接列(10)SoftmaxLayer分类层];

从图层数组中创建一个图层图。layerGraph连接所有图层层数顺序地。绘制图层图。

Lgraph = LayerGraph(层);图绘图(LGROP)

图包含轴对象。轴对象包含Type Graphplot的对象。

创建1乘1的卷积层,并将其添加到层图中。指定卷积滤波器的数量和步幅,使激活大小与第三个ReLU层的激活大小匹配。这种安排使添加层能够添加第三个ReLU层和1乘1卷积层的输出。要检查层是否在图中,绘制层图。

Skipconv = Convolution2Dlayer(1,32,'走吧'2,'姓名''skipconv');Lgraph = Addlayers(LAPHAGH,SKIPCONV);图绘图(LGROP)

图包含轴对象。轴对象包含Type Graphplot的对象。

从中创建快捷方式连接'relu_1'层到了'添加'层。因为您指定了两个作为添加层的输入的数量时,所以该图层有两个名为的输入'in1''in2'.第三recu层已经连接到'in1'输入。连接'relu_1'层到了'skipconv'层和'skipconv'层到了'in2'输入的输入'添加'层。加法层现在将第三个ReLU层的输出和'skipconv'层。要检查图层是否正确连接,请绘制图层图。

Lgraph = ConnectLayers(LAPHAGE,'relu_1''skipconv');Lgraph = ConnectLayers(LAPHAGE,'skipconv'“添加/ in2”);图绘制(lgraph);

图包含轴对象。轴对象包含Type Graphplot的对象。

加载训练和验证数据,其中包含28 × 28的数字灰度图像。

[xtrain,ytrain] = DigitTrain4darraydata;[xvalidation,yvalidation] = dimittest4darraydata;

指定培训选项并对网络进行培训。Trainnetwork.每次使用验证数据验证网络验证频繁迭代。

选择= trainingOptions (“个”......'maxepochs',8,......'洗牌'“every-epoch”......“ValidationData”{XValidation, YValidation},......“ValidationFrequency”30岁的......“详细”假的,......'plots''培训 - 进步');网= trainNetwork (XTrain YTrain、lgraph选项);

Figure Training Progress (01-Sep-2021 08:31:32)包含2个轴对象和另一个类型为uigridlayout的对象。axis对象1包含15个类型为patch, text, line的对象。axis对象2包含15个类型为patch, text, line的对象。

显示训练网络的属性。网络是一个Dagnetwork.对象。

net = DAGNetwork with properties: Layers: [16x1 net.cnn.layer. layer] Connections: [16x2 table] InputNames: {'imageinput'} OutputNames: {'classoutput'}

分类验证图像并计算准确性。网络非常准确。

YPredicted =分类(净,XValidation);精度=平均值(YPredicted == YValidation)
精度= 0.9934

扩展能力

在R2017B中介绍