层
网络层用于深度学习
描述
定义用于深度学习的神经网络体系结构的层。
创建
用于MATLAB中深度学习层的列表®,请参阅深度学习层列表.要指定所有层按顺序连接的神经网络的体系结构,请直接创建一个层数组。要指定网络的体系结构,其中各层可以有多个输入或输出LayerGraph
对象。
或者,您可以从Caffe、Keras和ONNX使用importCaffeLayers
,importKerasLayers
,importONNXLayers
分别。
要了解如何创建自己的自定义层,请参见定义自定义深度学习层.
对象的功能
trainNetwork |
训练深度学习神经网络 |
例子
构建网络体系结构
定义一个卷积神经网络体系结构用于分类,它包含一个卷积层、一个ReLU层和一个完全连接层。
层= [...imageInputLayer([28 28 3]) convolution2dLayer([5 5],10) reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer]
2”二维卷积10 5x5卷积与跨步[1 1]和填充[0 0 0 0]3”ReLU ReLU 4”全连接10全连接层5”Softmax Softmax 6”分类输出crossentropyex
层
是一个层
对象。
或者,您可以单独创建层,然后将它们连接起来。
input = imageInputLayer([28 28 3]);conv = convolution2dLayer([5 5],10);relu = reluLayer;fc = fullyConnectedLayer (10);sm = softmaxLayer;有限公司= classificationLayer;层= [...输入;输入;输入
2”二维卷积10 5x5卷积与跨步[1 1]和填充[0 0 0 0]3”ReLU ReLU 4”全连接10全连接层5”Softmax Softmax 6”分类输出crossentropyex
在图层数组中访问图层和属性
定义一个卷积神经网络体系结构用于分类,它包含一个卷积层、一个ReLU层和一个完全连接层。
层= [...imageInputLayer([28 28 3]) convolution2dLayer([5 5],10) reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];
通过选择第一层显示图像输入层。
层(1)
ans = ImageInputLayer with properties: Name: " InputSize: [28 28 3] SplitComplexInputs: 0 Hyperparameters DataAugmentation: 'none' Normalization: 'zerocenter' NormalizationDimension: 'auto' Mean: []
查看图像输入层的输入大小。
层(1)。InputSize
ans =1×328日28日3
显示卷积层的步幅。
层(2)。步
ans =1×21
访问全连接层的偏置学习速率因子。
层(4)。BiasLearnRateFactor
ans = 1
创建简单的DAG网络
为深度学习创建一个简单的有向无环图(DAG)网络。训练网络对数字图像进行分类。本例中的简单网络包括:
由按顺序连接的层组成的主分支。
一个快捷方式连接包含单个1 × 1卷积层。快捷连接使参数梯度更容易地从输出层流向网络的早期层。
创建网络的主分支作为层数组。添加层按顺序对多个输入元素相加。指定要求和的附加层的输入数量。为了便于以后添加连接,请指定第一个ReLU层和添加层的名称。
layers = [imageInputLayer([28 28 1]) convolution2dLayer(5,16,“填充”,“相同”) batchNormalizationLayer reluLayer (“名字”,“relu_1”32岁的)convolution2dLayer (3“填充”,“相同”,“步”,2) batchNormalizationLayer reluLayer convolution2dLayer(3,32,“填充”,“相同”(2)“名字”,“添加”) averagePooling2dLayer (2“步”2) fullyConnectedLayer(10) softmaxLayer classificationLayer];
从图层数组中创建一个图层图。layerGraph
连接所有层层
按顺序。绘制图层图。
lgraph = layerGraph(层);图绘制(lgraph)
创建1 × 1卷积图层,并将其添加到图层图中。指定卷积滤波器的数量和stride,使激活大小与第三个ReLU层的激活大小匹配。这种安排使添加层能够添加第三个ReLU层和1 × 1卷积层的输出。要检查图层是否在图中,绘制图层图。
32岁的skipConv = convolution2dLayer (1“步”2,“名字”,“skipConv”);lgraph = addLayers (lgraph skipConv);图绘制(lgraph)
创建快捷连接“relu_1”
层的“添加”
层。因为您在创建添加层时指定了2作为输入的数量,所以该层有两个命名的输入“三机”
而且“in2”
.第三个ReLU层已经连接到“三机”
输入。连接“relu_1”
层的“skipConv”
层和“skipConv”
层的“in2”
输入的“添加”
层。加法层现在将第三个ReLU层和“skipConv”
层。为了检查层是否正确连接,绘制层图。
lgraph = connectLayers (lgraph,“relu_1”,“skipConv”);lgraph = connectLayers (lgraph,“skipConv”,“添加/ in2”);图绘制(lgraph);
加载训练和验证数据,其中包含28 × 28灰度数字图像。
[XTrain, YTrain] = digitTrain4DArrayData;[XValidation, YValidation] = digitTest4DArrayData;
指定培训选项并培训网络。trainNetwork
每天使用验证数据验证网络ValidationFrequency
迭代。
选择= trainingOptions (“个”,...“MaxEpochs”8...“洗牌”,“every-epoch”,...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”30岁的...“详细”假的,...“阴谋”,“训练进步”);网= trainNetwork (XTrain YTrain、lgraph选项);
显示经过训练的网络的属性。网络是一个DAGNetwork
对象。
网
net = DAGNetwork属性:Layers: [16x1 nnet.cnn.layer.Layer] Connections: [16x2 table] InputNames: {'imageinput'} OutputNames: {'classoutput'}
对验证图像进行分类,计算精度。网络非常精确。
YPredicted =分类(净,XValidation);精度=平均值(yexpected = YValidation)
精度= 0.9934
版本历史
介绍了R2016a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。