连接层

在层图形连接层

说明

newlgraph= connectLayers(lgraph小号d连接源极层小号到目的层d在该层图形lgraph. 这个new layer graph,newlgraph包含相同的层lgraph包括新的连接。

实例

全部折叠

创建具有两个输入和名称的加成层'add_1'

添加= additionLayer(2,'名称''add_1'
添加= AdditionLayer与属性:名称: 'add_1' NumInputs:2个InputNames:{ 'IN1' '平方英寸'}

创建两个ReLU层并将它们连接到添加层。加法层对ReLU层的输出求和。

relu_1 = reluLayer('名称''relu_1');relu_2=reluLayer('名称''relu_2');lgraph = layerGraph;lgraph = addLayers(lgraph,relu_1);lgraph = addLayers(lgraph,relu_2);lgraph = addLayers(lgraph,ADD);lgraph = connectLayers(lgraph,'relu_1''add_1 / IN1');lgraph = connectLayers(lgraph,'relu_2''add_1 /英寸2');图(lgraph)

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

  • 与层A主枝依次连接。

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

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

层=[imageInputLayer([28 28 28 1],'名称'“输入”)convolution2dLayer(5,16,'填充''相同''名称''conv_1')batchNormalizationLayer('名称''十亿')reluLayer('名称''relu_1')convolution2dLayer(3,32,'填充''相同'“跨越论”,2岁,'名称''conv_2')batchNormalizationLayer('名称''BN_2')reluLayer('名称''relu_2')convolution2dLayer(3,32,'填充''相同''名称''转换3')batchNormalizationLayer('名称''BN_3')reluLayer('名称''relu_3')附加层(2,'名称''加')averagePooling2dLayer(2,“跨越论”,2岁,'名称''avpool')完全连接层(10,'名称''fc')softmaxLayer('名称''SOFTMAX')分类层('名称''classOutput')];

从层数组创建层图。分层图连接在所有层顺序。绘制层图形。

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''添加/in2');图形图(lgraph);

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

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

指定培训选项并培训网络。trainNetwork使用验证数据验证网络ValidationFrequency迭代。

选项=训练选项('新加坡元'...'MaxEpochs'8,...“洗牌”“每个时代”...'验证数据',{XValidation,YValidation},...'验证频率',30岁,...'冗长',错误,...“情节”“训练进度”);net=列车网络(XTrain、YTrain、lgraph、options);

显示训练网络的属性。网络是一个DAGNetwork宾语。

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

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

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

输入参数

全部折叠

层图,指定为LayerGraph宾语。要创建一个层图形,利用分层图

连接源,指定为字符向量或字符串标量。

  • 如果源层具有单个输出,然后小号是该层的名称。

  • 如果源层具有多个输出,然后小号是层名后面的字符/和层输出的名称:'层名称/输出名称'

例子:'转换1'

例子:'mpool上/指数'

连接目标,指定为字符向量或字符串标量。

  • 如果目的地层具有单个输入,则d是该层的名称。

  • 如果目的地层具有多个输入,然后d是层名后面的字符/和层输入的名称:'layerName / inputName'

例子:'fc'

例子:'addlayer1 /英寸2'

输出参数

全部折叠

输出层图形,返回为LayerGraph宾语。

介绍了在R2017b