主要内容

加法器

描述

加法层添加了来自多个神经网络层元素的输入。

创建该图层的输入数量。该层的输入有名称'in1','in2',...,'inn', 在哪里n是输入的数量。通过使用连接或断开层的输入名称连接器或者断开连接器。加法层的所有输入都必须具有相同的维度。

创建

描述

例子

=加法器(numInputs创建一个添加的添加图层numInputs输入元素。此功能还设置了numInputs财产。

例子

=加法器(numInputs,“名称”,名称)还设置了姓名财产。

特性

展开全部

该层的输入数量,指定为大于或等于2的正整数。

输入有名称'in1','in2',...,'inn', 在哪里nnumInputs。例如,如果numInputs是3,然后输入有名称'in1',in2', 和'in3'。连接或断开层的输入名称,连接器或者断开连接器功能。

图层名称,指定为字符向量或字符串标量。为了数组输入,火车网,,,,汇编工作,,,,LayerGraph, 和dlnetwork功能自动将名称分配给具有名称的图层''

数据类型:char|细绳

输入名称,指定为{'in1','in2',...,'inn'}, 在哪里n是该层的输入数量。

数据类型:细胞

此属性仅阅读。

层的输出数。该层仅具有单个输出。

数据类型:双倍的

此属性仅阅读。

层的输出名称。该层仅具有单个输出。

数据类型:细胞

例子

全部收缩

创建一个带有两个输入和名称的加法层'add_1'

add =加法器(2,'姓名',,,,'add_1'
add =添加层属性:name:'add_1'numInputs: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,add);lgraph =连接器(lgraph,'relu_1',,,,'add_1/in1');lgraph =连接器(lgraph,'relu_2',,,,'add_1/in2');情节(lgraph)

图包含一个轴对象。轴对象包含类型图形图的对象。

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

  • 依次连接的主分支。

  • 一个快捷连接包含一个1 by-1卷积层。快捷连接使参数梯度能够从输出层更容易流到网络的早期层。

创建网络的主要分支作为图层数组。加法层总和多个输入元素。指定为添加层总和的输入数。要稍后轻松添加连接,请指定第一个Relu层和加法层的名称。

layers = [imageInputlayer([28 28 1])卷积2Dlayer(5,16,'填充',,,,'相同的')batchnormalizationlayer relulayer('姓名',,,,'relu_1')卷积2Dlayer(3,32,,'填充',,,,'相同的',,,,“大步”,2)batchnormalizationlayer relulayer卷积2Dlayer(3,32,'填充',,,,'相同的')batchnormalizationlayer relulayer添加剂(2,'姓名',,,,'添加')平均pooling2dlayer(2,“大步”,2)完整连接的layerer(10)SoftMaxlayer ClassificationLayer];

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

lgraph = layergraph(layers);图(lgraph)

图包含一个轴对象。轴对象包含类型图形图的对象。

创建1 by-1卷积层,然后将其添加到图层图中。指定卷积过滤器和步幅的数量,以使激活尺寸与第三层层层的激活大小相匹配。该布置使加法层添加第三个relu层和1 by-1卷积层的输出。要检查图层是否在图中,请绘制图层图。

skipconv =卷积2Dlayer(1,32,“大步”,2,'姓名',,,,'skipconv');lgraph = addlayers(lgraph,skipconv);图(lgraph)

图包含一个轴对象。轴对象包含类型图形图的对象。

'relu_1'层到达'添加'层。因为您将两个指定为加法层的输入数量,所以该层具有两个命名的输入'in1''in2'。第三层层已经连接到'in1'输入。连接'relu_1'层到达'skipconv'层和'skipconv'层到达'in2'输入'添加'层。现在,加法层总结了第三个relu层的输出和'skipconv'层。要检查层是否正确连接,请绘制图层图。

lgraph =连接器(lgraph,'relu_1',,,,'skipconv');lgraph =连接器(lgraph,'skipconv',,,,'add/in2');图图(lgraph);

图包含一个轴对象。轴对象包含类型图形图的对象。

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

[Xtrain,Ytrain] = DigitTrain4DarrayData;[xvalidation,yvalidation] = digittest4darraydata;

指定培训选项并培训网络。火车网使用验证数据验证网络验证频率迭代。

选项=训练('sgdm',,,,...“ maxepochs”,8,...“洗牌”,,,,“每个段”,,,,...'验证data',{xvalidation,yvalidation},...“验证频率”,30,...“冗长”,错误的,...“绘图”,,,,“训练过程”);net = trainnetwork(Xtrain,Ytrain,Lgraph,选项);

人物训练进度(26-FEB-2022 11:14:06)包含2个轴对象和uigridlayout类型的另一个对象。轴对象1包含15个类型补丁,文本,行的对象。轴对象2包含15个类型补丁,文本,行的对象。

显示受过训练的网络的属性。网络是一个dagnetwork目的。

net =带有属性的dagnetwork:layers:[16x1 nnet.cnn.layer.layer] connections:[16x2 table] inputNames:{'imageInput'} outputnames:{'classOutput'}

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

ypredistic =分类(net,xvalidation);精度=平均值(ypredifate == yvalidation)
精度= 0.9934

扩展功能

C/C ++代码生成
使用MATLAB®CODER™生成C和C ++代码。

GPU代码生成
使用GPU CODER™为NVIDIA®GPU生成CUDA®代码。

版本历史记录

在R2017b中引入