文档帮助中心
在层图中连接层
newlgraph = connectLayers (lgraph s d)
例子
newlgraph= connectLayers (lgraph,年代,d)连接源层年代到目的地层d在图层图中lgraph。新的图层图,newlgraph,包含与。相同的层lgraph包括新的连接。
newlgraph= connectLayers (lgraph,年代,d)
newlgraph
lgraph
年代
d
全部收缩
创建一个包含两个输入和名称的附加层“add_1”。
“add_1”
添加= additionLayer (2“名字”,“add_1”)
add = AdditionLayer with properties: Name: 'add_1' numinput: 2 InputNames: {'in1' 'in2'}
创建两个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,添加);lgraph = connectLayers (lgraph,“relu_1”,“add_1 /三机一体”);lgraph = connectLayers (lgraph,“relu_2”,“add_1 / in2”);情节(lgraph)
为深度学习创建一个简单的有向无环图(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,“名字”,'FC')softmaxLayer (“名字”,“softmax”)classificationLayer(“名字”,“classOutput”)];
创建从层阵列的层图。layerGraph连接所有层层按顺序。绘制层图。
layerGraph
层
lgraph = layerGraph(层);图绘制(lgraph)
创建1×1的卷积层并将其添加到该层图形。指定卷积滤波器的数量和步伐,使活化大小的激活尺寸相匹配“relu_3”层。此安排使添加层能够添加的输出“skipConv”和“relu_3”层。要检查层是否在图中,绘制层图。
“relu_3”
“skipConv”
32岁的skipConv = convolution2dLayer (1“步”,2,“名字”,“skipConv”);lgraph = addLayers (lgraph skipConv);图绘制(lgraph)
创建快捷连接“relu_1”层的“添加”层。因为您在创建添加层时指定了2作为它的输入数,所以该层有两个命名的输入“三机”和“in2”。该“relu_3”层已经连接到“三机”输入。连接“relu_1”层的“skipConv”层和“skipConv”层的“in2”输入的“添加”层。在添加层现在总结的输出“relu_3”和“skipConv”层。要检查层连接正确,绘制层图形。
“relu_1”
“添加”
“三机”
“in2”
lgraph = connectLayers (lgraph,“relu_1”,“skipConv”);lgraph = connectLayers (lgraph,“skipConv”,“添加/平方英寸”);图图(lgraph);
加载训练和验证数据,它由数字28由-28灰度图像。
[XTrain, YTrain] = digitTrain4DArrayData;[XValidation, YValidation] = digitTest4DArrayData;
指定的培训方式和培训网络。trainNetwork验证使用所述验证数据的每个网络ValidationFrequency迭代。
trainNetwork
ValidationFrequency
选项= trainingOptions('SGDM',…“MaxEpochs”8…“洗牌”,“每个历元”,…'ValidationData'{XValidation,YValidation}…'ValidationFrequency'30,…“放牧”,假,…“阴谋”,“训练进步”);净= trainNetwork(XTrain,YTrain,lgraph,选项);
显示训练有素的网络的性能。该网络是一个DAGNetwork对象。
DAGNetwork
净
net = DAGNetwork with properties: Layers:[16×1 nnet.cn .layer. layer. layer]连接:[16×2 table]
对验证图像进行分类,计算精度。这个网络非常精确。
YPredicted =分类(净,XValidation);精度=平均值(YPredicted == YValidation)
精度= 0.9968
LayerGraph
层图形,指定为LayerGraph对象。要创建层图,请使用layerGraph。
连接源,指定为字符向量或字符串标量。
如果源层只有一个输出,那么年代是层的名称。
如果源层有多个输出,则年代是层名称后面跟着字符/和层输出的名称:'layerName / outputName'。
'layerName / outputName'
例:'CONV1'
'CONV1'
例:“mpool /指数”
“mpool /指数”
连接目的地,指定为字符向量或字符串标量。
如果目标层只有一个输入,则d是层的名称。
如果目标层有多个输入,则d是层名称后面跟着字符/和层输入的名称:“layerName / inputName”。
“layerName / inputName”
例:'FC'
'FC'
例:“addlayer1 / in2”
“addlayer1 / in2”
输出层图形,返回为LayerGraph对象。
addLayers|assembleNetwork|disconnectLayers|layerGraph|情节|removeLayers|replaceLayer
addLayers
assembleNetwork
disconnectLayers
情节
removeLayers
replaceLayer
这个例子的修改版本的系统上存在。你要打开这个版本呢?
你点击了一个链接,对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入该命令来运行它。Web浏览器不支持MATLAB命令。金宝app
选择一个网站来获取可用的翻译内容,并查看本地事件和报价。根据你的位置,我们建议你选择:。
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文),以获得最佳的网站表现。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
请联系您当地的办事处