主要内容

网络层用于深度学习

描述

定义用于深度学习的神经网络体系结构的层。

创建

用于MATLAB中深度学习层的列表®,请参阅深度学习层列表.要指定所有层按顺序连接的神经网络的体系结构,请直接创建一个层数组。要指定网络的体系结构,其中各层可以有多个输入或输出LayerGraph对象。

或者,您可以从Caffe、Keras和ONNX使用importCaffeLayersimportKerasLayers,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)网络。训练网络对数字图像进行分类。本例中的简单网络包括:

  • 由按顺序连接的层组成的主分支。

  • 一个快捷方式连接包含单个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)

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

创建1 × 1卷积图层,并将其添加到图层图中。指定卷积滤波器的数量和stride,使激活大小与第三个ReLU层的激活大小匹配。这种安排使添加层能够添加第三个ReLU层和1 × 1卷积层的输出。要检查图层是否在图中,绘制图层图。

32岁的skipConv = convolution2dLayer (1“步”2,“名字”“skipConv”);lgraph = addLayers (lgraph skipConv);图绘制(lgraph)

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

创建快捷连接“relu_1”层的“添加”层。因为您在创建添加层时指定了2作为输入的数量,所以该层有两个命名的输入“三机”而且“in2”.第三个ReLU层已经连接到“三机”输入。连接“relu_1”层的“skipConv”层和“skipConv”层的“in2”输入的“添加”层。加法层现在将第三个ReLU层和“skipConv”层。为了检查层是否正确连接,绘制层图。

lgraph = connectLayers (lgraph,“relu_1”“skipConv”);lgraph = connectLayers (lgraph,“skipConv”“添加/ in2”);图绘制(lgraph);

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

加载训练和验证数据,其中包含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

Baidu
map