connectLayers
在图层图中连接图层
描述
例子
创建并连接添加层
创建一个附加层,有两个输入和名称“add_1”
.
add = addtionlayer (2,“名字”,“add_1”)
add =附加层属性:Name: 'add_1' NumInputs: 2 InputNames: {'in1' 'in2'}
创建两个ReLU层,并将它们连接到附加层。加法层将ReLU层的输出相加。
relu_1 = relullayer (“名字”,“relu_1”);relu_2 = relullayer (“名字”,“relu_2”);lgraph = layerGraph;lgraph = addLayers(lgraph,relu_1);lgraph = addLayers(lgraph,relu_2);lgraph = addLayers(lgraph,add);lgraph = connectLayers(“relu_1”,“add_1 /三机一体”);lgraph = connectLayers(“relu_2”,“add_1 / in2”);情节(lgraph)
创建简单的DAG网络
为深度学习创建一个简单的有向无环图(DAG)网络。训练网络对数字图像进行分类。本例中的简单网络包括:
一种主分支,层按顺序连接。
一个快捷方式连接包含单个1乘1卷积层。快捷连接使参数梯度更容易地从输出层流向网络的早期层。
创建网络的主要分支作为层数组。加法层对多个输入元素进行相加。指定添加层要求和的输入数量。所有的层都必须有名称,并且所有的名称必须是唯一的。
图层= [imageInputLayer([28 28 1],“名字”,“输入”16) convolution2dLayer(5日,“填充”,“相同”,“名字”,“conv_1”) batchNormalizationLayer (“名字”,“BN_1”) reluLayer (“名字”,“relu_1”32岁的)convolution2dLayer (3“填充”,“相同”,“步”2,“名字”,“conv_2”) batchNormalizationLayer (“名字”,“BN_2”) reluLayer (“名字”,“relu_2”32岁的)convolution2dLayer (3“填充”,“相同”,“名字”,“conv_3”) batchNormalizationLayer (“名字”,“BN_3”) reluLayer (“名字”,“relu_3”) additionLayer (2“名字”,“添加”) averagePooling2dLayer (2“步”2,“名字”,“avpool”) fullyConnectedLayer (10“名字”,“俱乐部”) softmaxLayer (“名字”,“softmax”) classificationLayer (“名字”,“classOutput”));
从图层数组创建一个图层图。layerGraph
连接所有的层层
按顺序。绘制层图。
lgraph = layerGraph(图层);图绘制(lgraph)
创建1 × 1卷积层,并将其添加到图层图中。函数的激活大小与卷积滤波器的激活大小相匹配“relu_3”
层。的输出“skipConv”
而且“relu_3”
层。要检查图层是否在图中,请绘制图层图。
skipConv =卷积2dlayer (1,32,“步”2,“名字”,“skipConv”);lgraph = addLayers(lgraph,skipConv);图绘制(lgraph)
创建快捷连接“relu_1”
图层到“添加”
层。因为您在创建加法层时指定了2作为输入的数量,所以该层有两个名为“三机”
而且“in2”
.的“relu_3”
层已经连接到“三机”
输入。连接“relu_1”
图层到“skipConv”
图层和“skipConv”
图层到“in2”
的输入“添加”
层。的输出求和“relu_3”
而且“skipConv”
层。要检查各层是否正确连接,请绘制层图。
lgraph = connectLayers(“relu_1”,“skipConv”);lgraph = connectLayers(“skipConv”,“添加/ in2”);图绘制(lgraph);
加载训练和验证数据,这些数据由28 × 28灰度数字图像组成。
[XTrain,YTrain] = digitTrain4DArrayData;[XValidation,YValidation] = digitTest4DArrayData;
指定培训选项并对网络进行培训。trainNetwork
每次使用验证数据验证网络ValidationFrequency
迭代。
选项= trainingOptions(“个”,...“MaxEpochs”8...“洗牌”,“every-epoch”,...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”30岁的...“详细”假的,...“阴谋”,“训练进步”);net = trainNetwork(XTrain,YTrain,lgraph,options);
显示训练后网络的属性。网络是一个DAGNetwork
对象。
网
net = DAGNetwork with properties: Layers: [16×1 nnet.cnn.layer.Layer] Connections: [16×2 table]
对验证图像进行分类并计算精度。这个网络非常准确。
ypredict = classification (net,XValidation);accuracy = mean(yexpected == YValidation)
准确度= 0.9968
输入参数
lgraph
- - - - - -层图
LayerGraph
对象
层图,指定为aLayerGraph
对象。要创建图层图,请使用layerGraph
.
年代
- - - - - -连接源
特征向量|字符串标量
连接源,指定为字符向量或字符串标量。
如果源层只有一个输出,那么
年代
是层的名称。如果源层有多个输出,则
年代
是层名后面跟着字符/和层输出的名称:“layerName / outputName”
.
例子:“conv1”
例子:“mpool /指数”
d
- - - - - -连接目的地
特征向量|字符串标量
连接目的地,指定为字符向量或字符串标量。
如果目标层只有一个输入,那么
d
是层的名称。如果目标层有多个输入,则
d
是层名后面跟着字符/和层输入的名称:“layerName / inputName”
.
例子:“俱乐部”
例子:“addlayer1 / in2”
输出参数
newlgraph
-输出层图
LayerGraph
对象
输出层图,返回为LayerGraph
对象。
在R2017b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。