主要内容

深度学习的网络层

描述

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

创建

对于Matlab中的深度学习层列表®, 看深度学习层名单. 要指定所有层顺序连接的神经网络体系结构,请直接创建层阵列。要指定层可以具有多个输入或输出的网络体系结构,请使用分层图对象

或者,可以使用从Caffe、Keras和ONNX导入图层ImportCaffelayers.进口卡拉斯层,及重要人物分别。

要了解如何创建自己的自定义图层,请参见定义自定义深度学习层

对象功能

Trainnetwork. 训练深度学习神经网络

例子

全部崩溃

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

层= [......imageInputLayer([28 28 3])卷积2dLayer([5],10)reluLayer fullyConnectedLayer(10)softmaxLayer classificationLayer]
图层= 6x1层阵列,带有图层:1''图像输入28x28x3图像与'zerocenter'归一化2''卷积10 5x5卷绕卷曲[1 1]和填充[0 0 0 0] 3''Relu Relu 4''完全连接10个完全连接的第5层'Softmax Softmax 6''分类输出Crossentropyex

层数是A.对象

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

输入= imageInputLayer([28 28 3]);conv = Convolution2Dlayer([5 5],10);relu = uruulayer;FC =全连接列(10);sm = softmaxlayer;co =分类层;层= [......输入CONC Relu FC SM CO]
图层= 6x1层阵列,带有图层:1''图像输入28x28x3图像与'zerocenter'归一化2''卷积10 5x5卷绕卷曲[1 1]和填充[0 0 0 0] 3''Relu Relu 4''完全连接10个完全连接的第5层'Softmax Softmax 6''分类输出Crossentropyex

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

层= [......imageInputLayer([28 28 3])卷积2dlayer([5 5],10)ultiulayer全连接列(10)SoftmaxLayer分类层];

通过选择第一层显示图像输入层。

层(1)
ans=ImageInputLayer,属性:名称:''InputSize:[28 28 3]超参数数据增强:'none'规范化:'zerocenter'规范化维度:'auto'平均值:[]

查看图像输入层的输入大小。

图层(1).InputSize
ans =.1×3.28 28 3.

显示卷积层的步幅。

层(2).stride
ans =.1×21 1

访问完全连接图层的偏置速率因子。

图层(4).BiasLearnRateFactor
ans = 1

为深度学习创建一个简单的有向非循环图(DAG)网络。培训网络以分类数字图像。此示例中的简单网络包括:

  • 主要分支,层依次连接。

  • 一种快捷连接包含单个1×1卷积层。快捷连接使参数渐变使得从输出层更容易流到网络的早期层。

将网络的主分支创建为层数组。添加层和多个输入元素明智。指定添加图层的输入数。所有图层必须具有名称,所有名称必须是唯一的。

层=[imageInputLayer([28 1],'名称''输入')卷积2dlayer(5,16,'填充'“一样”'名称''conv_1'batchnormalizationlayer('名称'‘BN_1’)剥离('名称''relu_1')卷积2dlayer(3,32,'填充'“一样”'走吧'2.'名称''conv_2'batchnormalizationlayer('名称''bn_2')剥离('名称''relu_2')卷积2dlayer(3,32,'填充'“一样”'名称'“conv_3”batchnormalizationlayer('名称'‘BN_3’)剥离('名称''relu_3')附加层(2,'名称''添加')普通Pooling2dlayer(2,'走吧'2.'名称''avpool')完全连接层(10,'名称'“fc”)softmaxlayer('名称''softmax')分类层('名称''ClassOutput')];

从图层阵列创建图层图。分层图连接所有图层层数顺序地。绘制图层图。

Lgraph = LayerGraph(层);图绘图(LGROP)

创建1×1卷积层并将其添加到层图中。指定卷积过滤器的数量和步长,以便激活大小与'relu_3'层。这种安排使添加层能够添加输出'skipconv''relu_3'层。要检查图层是否在图形中,请绘制图层图。

Skipconv = Convolution2Dlayer(1,32,'走吧'2.'名称''skipconv');Lgraph = Addlayers(LAPHAGH,SKIPCONV);图绘图(LGROP)

从中创建快捷方式连接'relu_1'层到了'添加'层。因为您指定了两个作为添加层的输入的数量时,所以该图层有两个名为的输入'in1''in2'. 这个'relu_3'层已经连接到'in1'输入。连接'relu_1'层到了'skipconv'层和'skipconv'层到了'in2'输入的输入'添加'层。加法层现在对'relu_3''skipconv'层。要检查图层是否正确连接,请绘制图层图。

Lgraph = ConnectLayers(LAPHAGE,'relu_1''skipconv');Lgraph = ConnectLayers(LAPHAGE,'skipconv'“添加/in2”); 图形图(lgraph);

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

[xtrain,ytrain] = DigitTrain4darraydata;[xvalidation,yvalidation] = dimittest4darraydata;

指定培训选项并培训网络。Trainnetwork.每年使用验证数据验证网络验证频繁迭代。

选项=培训选项(“sgdm”......'maxepochs',8,......'洗牌'“每个时代”......“验证数据”,{XValidation,YValidation},......“验证频率”,30,......“冗长”,错,......'plots''培训 - 进步'); net=列车网络(XTrain、YTrain、lgraph、选项);

显示经过训练的网络的属性。网络是一个Dagnetwork.对象

net =具有属性的Dagnetwork:图层:[16×1 nnet.cnn.layer.layer]连接:[16×2表]输入名称:{'输入'} OutputNames:{'classOutput'}

分类验证图像并计算准确性。网络非常准确。

YPredicted=分类(净、XValidation);准确度=平均值(预测=验证)
精度=0.9930
在R2016A介绍