DAGNetwork

向无环图(DAG)网络的深度学习

描述

甲DAG网络是用于与布置为向无环图的层深学习神经网络。甲DAG网络可以具有更复杂的结构,其中层具有由多个层,并输出到多个层的输入。

创建

有几种方法来创建DAGNetwork宾语:

注意

要了解其他预训练的网络,请参阅预训练深层神经网络

属性

展开全部

网络层,指定为阵列。

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

每个表行表示在该层图形的连接。第一列,资源中,指定各个连接的源。第二列,目的地中,指定各个连接的目的地。连接源和目标是任一层名或具有形式'layerName / IOName',其中'IOName'是层输入或输出的名称。

数据类型:

网络的输入层名称,指定为字符向量的单元阵列。

数据类型:细胞

网络输出层的名称,指定为字符向量的单元阵列。

数据类型:细胞

对象函数

激活 计算深度学习网络层激活
分类 使用受训深学习神经网络分类数据
预测 预测使用受训深学习神经网络的反应
情节 积神经网络层图形

例子

全部收缩

创建向无环图(DAG)网络的深度学习简单。网络列车的数字图像分类。在这个例子中的简单的网络包括:

  • 与层A主枝依次连接。

  • 一种快捷方式连接含有单个1×1的卷积层。快捷方式连接使得所述参数梯度以从输出层更容易地流动到网络的较早的层。

创建网络作为层阵列的主分支。在添加层总结多个输入元件,明智的。指定的用于添加层以总和输入数量。所有图层的名称必须与所有名称必须是唯一的。

层= [imageInputLayer([28 28 1],'名称'“输入”)convolution2dLayer(5,16,'填充''相同''名称''conv_1')batchNormalizationLayer('名称''BN_1')reluLayer('名称''relu_1')convolution2dLayer(3,32,'填充''相同'“跨越论”,2,'名称''conv_2')batchNormalizationLayer('名称''BN_2')reluLayer('名称''relu_2')convolution2dLayer(3,32,'填充''相同''名称''conv_3')batchNormalizationLayer('名称''BN_3')reluLayer('名称''relu_3')additionLayer(2,'名称''加')averagePooling2dLayer(2,“跨越论”,2,'名称''avpool')fullyConnectedLayer(10,'名称''FC')softmaxLayer('名称''SOFTMAX')classificationLayer('名称''classOutput')];

创建从层阵列的层图。layerGraph连接在所有层顺序。绘制层图形。

lgraph = layerGraph(层);图图(lgraph)

创建1×1的卷积层并将其添加到该层图形。指定卷积滤波器的数量和步伐,使活化大小的激活尺寸相匹配'relu_3'层。这种布置使得除层以添加的输出'skipConv''relu_3'层。要检查该层是图中,绘制图形层。

skipConv = convolution2dLayer(1,32,“跨越论”,2,'名称''skipConv');lgraph = addLayers(lgraph,skipConv);图图(lgraph)

创建一个从快捷连接'relu_1'层到'加'层。因为你指定的两成投入到另外层的编号创建时,该层有两个名为输入'IN1''IN2'。该'relu_3'层已经连接到'IN1'输入。连接'relu_1'层到'skipConv'层和所述'skipConv'层到'IN2'输入'加'层。在添加层现在总结的输出'relu_3''skipConv'层。要检查层连接正确,绘制层图形。

lgraph = connectLayers(lgraph,'relu_1''skipConv');lgraph = connectLayers(lgraph,'skipConv'“添加/平方英寸”);图图(lgraph);

加载训练和验证数据,它由数字28由-28灰度图像。

[XTrain,YTrain] = digitTrain4DArrayData;[XValidation,YValidation] = digitTest4DArrayData;

指定的培训方式和培训网络。trainNetwork验证使用所述验证数据的每个网络ValidationFrequency迭代。

选项= trainingOptions('SGDM'...'MaxEpochs'8,...“洗牌”“每个历元”...'ValidationData'{XValidation,YValidation}...'ValidationFrequency'30,...“放牧”,假,...“情节”“训练进度”);净= trainNetwork(XTrain,YTrain,lgraph,选项);

显示训练有素的网络的性能。该网络是一个DAGNetwork宾语。

净= DAGNetwork与属性:层:[16×1 nnet.cnn.layer.Layer]连接:[16×2表]

分类验证图像和计算的准确性。该网络是非常准确的。

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

扩展功能

介绍了在R2017b