主要内容

ConnectLayers.

在层图中连接层

描述

例子

newlgraph= connectLayers (lgraph年代d连接源层年代到目标层d在层图中lgraph.新的图层图,newlgraph,包含与之相同的层lgraph并包含新的连接。

例子

全部收缩

创建一个添加层,有两个输入和名称“add_1”

添加= additionLayer (2“名字”“add_1”
add = AdditionLayer with properties: Name: 'add_1' NumInputs: 2 InputNames: {'in1' 'in2'}

创建两个Relu层并将它们连接到加法层。添加层与Relu层的输出总和。

relu_1 = reluLayer (“名字”“relu_1”);Relu_2 = Rufulayer(“名字”“relu_2”);lgraph = layerGraph;lgraph = addLayers (lgraph relu_1);lgraph = addLayers (lgraph relu_2);lgraph = addLayers (lgraph,添加);lgraph = connectLayers (lgraph,“relu_1”“add_1 /三机一体”);lgraph = connectLayers (lgraph,“relu_2”“add_1 / in2”);情节(lgraph)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

为深度学习创建一个简单的有向无环图(DAG)网络。训练网络对数字图像进行分类。这个例子中的简单网络包括:

  • 各层按顺序连接的一种主分支。

  • 一个快捷方式连接包含一个1乘1的卷积层。快捷连接使参数梯度更容易从输出层流向网络的早期层。

创建网络的主分支作为一个层阵列。加法层对多个输入元素进行求和。指定要求和的添加层的输入数量。为方便以后添加连接,指定第一个ReLU层和添加层的名称。

layers = [imageInputLayer([28 28 1])]'填充''相同的')BatchnormalizationLayer Ruilulayer(“名字”“relu_1”32岁的)convolution2dLayer (3'填充''相同的'“步”,2) batchNormalizationLayer reluLayer convolution2dLayer(3,32,)'填充''相同的') batchNormalizationLayer reluLayer additionLayer(2,“名字”“添加”) averagePooling2dLayer (2“步”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer;

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

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

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

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

32岁的skipConv = convolution2dLayer (1“步”2,“名字”“skipConv”);lgraph = addLayers (lgraph skipConv);图绘制(lgraph)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

从。创建快捷连接“relu_1”层的“添加”层。因为您在创建添加层时指定了2作为添加层的输入数量,所以该层有两个名为“三机”“in2”.第三个ReLU层已经连接到“三机”输入。连接“relu_1”层的“skipConv”层和“skipConv”层的“in2”输入的“添加”层。添加层现在总和第三ref层的输出和“skipConv”层。要检查层是否连接正确,绘制层图。

lgraph = connectLayers (lgraph,“relu_1”“skipConv”);lgraph = connectLayers (lgraph,“skipConv”'添加/ in2');图图(LGraph);

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

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

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

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

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

图培训进度(01-SEP-2021 08:31:32)包含2个轴对象和类型yougrivlayout的另一个对象。轴对象1包含15个类型的修补程序,文本,行。轴对象2包含15个类型的补丁,文本,行的对象。

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

net =具有属性的Dagnetwork:图层:[16x1 nnet.cnn.layer.layer]连接:[16x2表] InputNames:{'ImageInput'} OutputNames:{'ClassOutput'}

对验证图像进行分类并计算精度。这个网络非常准确。

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

输入参数

全部收缩

图层图,指定为aLayerGraph目的。要创建图层图,请使用分层图

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

  • 如果源层只有一个输出,那么年代是层的名称。

  • 如果源层有多个输出,那么年代是层名后面加上字符/和层名输出:'layername / outputname'

例子:'conv1'

例子:“mpool /指数”

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

  • 如果目标层只有一个输入,那么d是层的名称。

  • 如果目标层有多个输入,那么d是层名后面跟着字符/和层名输入:“layerName / inputName”

例子:'fc'

例子:'AddLayer1 / In2'

输出参数

全部收缩

输出层图,返回为LayerGraph目的。

介绍了R2017b