层
网络层用于深度学习
描述
定义用于深度学习的神经网络架构的层。
创建
获取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 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;co = classificationLayer;层= [...输入conv relu fc sm co]
2 "二维卷积10个5x5卷积与跨步[1 1]和填充[0 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'归一化:'zerocenter' NormalizationDimension: 'auto' Mean: []
查看图像输入层的输入大小。
层(1)。InputSize
ans =1×328 28 3
显示卷积层的步幅。
层(2)。步
ans =1×21
访问全连接层的偏置学习率因子。
层(4)。BiasLearnRateFactor
Ans = 1
创建简单的DAG网络
为深度学习创建一个简单的有向无环图(DAG)网络。训练网络对数字图像进行分类。本例中的简单网络包括:
一种主分支,层按顺序连接。
一个快捷方式连接包含单个1乘1卷积层。快捷连接使参数梯度更容易地从输出层流向网络的早期层。
创建网络的主要分支作为层数组。加法层对多个输入元素进行相加。指定添加层要求和的输入数量。为了便于以后添加连接,请为第一个ReLU层和添加层指定名称。
图层= [imageInputLayer([28 28 1])卷积2dlayer (5,16,“填充”,“相同”reluLayer()“名字”,“relu_1”32岁的)convolution2dLayer (3“填充”,“相同”,“步”,2)卷积2dlayer (3,32,“填充”,“相同”(2)“名字”,“添加”) averagePooling2dLayer (2“步”,2) fullyConnectedLayer(10) softmaxLayer classificationLayer];
从图层数组创建一个图层图。layerGraph
连接所有的层层
按顺序。绘制层图。
lgraph = layerGraph(图层);图绘制(lgraph)
创建1 × 1卷积层,并将其添加到图层图中。指定卷积滤波器的数量和步幅,使激活大小与第三个ReLU层的激活大小匹配。这样的安排使得添加层能够添加第三个ReLU层和1 × 1卷积层的输出。要检查图层是否在图中,请绘制图层图。
skipConv =卷积2dlayer (1,32,“步”2,“名字”,“skipConv”);lgraph = addLayers(lgraph,skipConv);图绘制(lgraph)
创建快捷连接“relu_1”
图层到“添加”
层。因为您在创建加法层时指定了2作为输入的数量,所以该层有两个名为“三机”
而且“in2”
.第三个ReLU层已经连接到“三机”
输入。连接“relu_1”
图层到“skipConv”
图层和“skipConv”
图层到“in2”
的输入“添加”
层。加法层现在将第三个ReLU层和“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: [16x1 nnet.cnn.layer.Layer] Connections: [16x2 table] InputNames: {'imageinput'} OutputNames: {'classoutput'}
对验证图像进行分类并计算精度。这个网络非常准确。
ypredict = classification (net,XValidation);accuracy = mean(yexpected == YValidation)
准确度= 0.9936
版本历史
在R2016a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。