主要内容

Dagnetwork.

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

描述

DAG网络是一个神经网络,用于深入学习,层层被布置为定向的非循环图。DAG网络可以具有更复杂的架构,其中层具有从多个层的输入并输出到多个层。

创建

有几种方法可以创造一个Dagnetwork.目的:

笔记

要了解其他预追溯网络,请参阅普里德深度神经网络

特性

展开全部

网络图层,指定为a大批。

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

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

数据类型:桌子

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

数据类型:细胞

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

数据类型:细胞

对象功能

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

例子

全部收缩

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

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

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

将网络的主分支创建为层数组。添加层和多个输入元素明智。指定添加图层的输入数。所有图层必须具有名称,所有名称必须是唯一的。

图层= [imageInputLayer([28 28 1],'名称''输入')卷积2dlayer(5,16,'填充''相同的''名称''conv_1'batchnormalizationlayer('名称''bn_1')剥离('名称''relu_1')卷积2dlayer(3,32,'填充''相同的''走吧'2,'名称''conv_2'batchnormalizationlayer('名称''bn_2')剥离('名称''relu_2')卷积2dlayer(3,32,'填充''相同的''名称''conv_3'batchnormalizationlayer('名称''bn_3')剥离('名称''relu_3')附加层(2,'名称''添加')普通Pooling2dlayer(2,'走吧'2,'名称''avpool')全连接层(10,'名称''fc')softmaxlayer('名称''softmax'scassificationlayer('名称''ClassOutput')];

从图层阵列创建一个图层图。分层图连接所有图层层数顺序地。绘制图层图。

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

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

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

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

Lgraph = ConnectLayers(LAPHAGE,'relu_1''skipconv');Lgraph = ConnectLayers(LAPHAGE,'skipconv''添加/ in2');图图(LGraph);

加载培训和验证数据,该数据由28×28灰度图像组成。

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

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

选项=培训选项('sgdm'......'maxepochs',8,......'洗牌''每个时代'......'vightationdata',{xvalidation,yvalidation},......'验证职业',30,......'verbose',错误的,......'plots''培训 - 进步');net = trainnetwork(xtrain,ytrain,3.选项);

显示培训网络的属性。网络是一个Dagnetwork.目的。

net =具有属性的Dagnetwork:图层:[16×1 nnet.cnn.layer.layer]连接:[16×2表]输入名称:{'输入'} OutputNames:{'classOutput'}

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

ypredictict =分类(net,xvalidation);精度=均值(ypredicted == yvalidation)
精度= 0.9930.

扩展能力

在R2017B中介绍