文档

层类

网络层

描述

网络层类包含层信息。卷积神经网络体系结构的每一层都是类。

建设

要定义卷积神经网络的架构,请直接创建一个层向量。或者,单独创建图层,然后将它们连接起来。看到构建网络架构

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象(MATLAB)中的MATLAB®文档。

索引

您可以通过索引层向量并使用点表示法来访问网络体系结构中的层的属性。例如,图像输入层是卷积神经网络的第一层。要访问InputSize属性的图像输入层,使用层(1)。InputSize。有关更多示例,请参见在图层数组中访问图层和属性

例子

全部展开

这个示例展示了如何构建网络体系结构。

定义一个用于分类的卷积神经网络架构,包含一个卷积层、一个ReLU层和一个全连接层。

Cnnarch = [imageInputLayer([28 28 3])卷积2dlayer ([5 5],10) reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];

或者,您可以单独创建图层,然后将它们连接起来。

input = imageInputLayer([28 28 3]);conv = convolution2dLayer([5 5],10);relu = reluLayer;fcl = fulllyconnectedlayer (10);sml = softmaxLayer;col = classificationLayer;Cnnarch = [输入转换[FCL];

cnnarch是一个6 × 1的层数组。

显示这个层数组的类。

类(cnnarch)
ans = 'nnet.cnn.layer.Layer'

cnnarch是一个对象。

这个例子展示了如何在图层数组中访问图层和属性。

定义一个用于分类的卷积神经网络架构,其中只有一个卷积层、一个ReLU层和一个全连接层。

图层= [imageInputLayer([28 28 3])卷积2dlayer ([5 5],10) reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];

显示图像输入层。

层(1)
ans = ImageInputLayer with properties: Name: " InputSize: [28 28 3] Hyperparameters: DataAugmentation: 'none' Normalization: 'zerocenter'

提取输入大小。

层(1)。InputSize
Ans = 28 28 3

显示卷积层的步幅。

层(2)。步
Ans = 1 1

访问全连接层的偏置学习率因子。

层(4)。BiasLearnRateFactor
Ans = 1

为分类和回归问题创建典型的卷积神经网络。

创建用于分类的卷积神经网络

输入层

创建输入层。假设输入的图像是灰度图像,大小为28 × 28。创建一个大小为28 × 28 × 1的图像输入层。

inputLayer = imageInputLayer([28 28 1]);

中间层

接下来创建网络的中间层。首先,创建一个包含12个4 × 3滤波器的卷积层、一个ReLU层、一个局部响应归一化层和一个包含2 × 2非重叠池化区域的最大池化层。

中层= [convolution2dLayer([4,3],12) reluLayer crossChannelNormalizationLayer(4) maxPooling2dLayer(2,“步”, 2)];

接下来,添加一个包含16个5 × 5过滤器的卷积层、一个ReLU层、一个局部响应归一化层和一个包含2 × 2非重叠池化区域的最大池化。

中层= [middleLayers卷积2dlayer (5,16) reluLayer crossChannelNormalizationLayer(4) maxPooling2dLayer(2,“步”, 2)];

接下来,添加一个大小为256的完全连接层和一个ReLU层。

中层= [middleLayers (256);

最后一层

构建网络的最后几层。假设有10个类。创建一个大小为10的完全连接层,然后是一个softmax层和一个分类层。

finalllayers = [fulllyconnectedlayer (10) softmaxLayer分类层];

将输入层、中间层和最终层结合起来创建网络架构。

图层= [inputLayer中间层;

或者,您可以一次创建完整的网络。

图层= [imageInputLayer([28 28 1]) convolution2dLayer([4 3],12) reluLayer crossChannelNormalizationLayer(4) maxPooling2dLayer(2,“步”,2) convolution2dLayer(5,16) reluLayer crossChannelNormalizationLayer(4) maxPooling2dLayer(2),“步”,2) fulllyconnectedlayer (256) reluLayer fulllyconnectedlayer (10) softmaxLayer classificationLayer];

创建一个用于回归的卷积神经网络

使用与分类网络类似的架构创建用于回归的卷积神经网络。用一个大小为1的完全连接层和一个回归层替换最后三个层。

图层= [imageInputLayer([28 28 1]) convolution2dLayer([4 3],12) reluLayer crossChannelNormalizationLayer(4) maxPooling2dLayer(2,“步”,2) convolution2dLayer(5,16) reluLayer crossChannelNormalizationLayer(4) maxPooling2dLayer(2),“步”,2) fulllyconnectedlayer (256) reluLayer fulllyconnectedlayer (1) regressionLayer];

在R2016a中引入

这个话题有帮助吗?