主要内容

网络层深度学习

描述

定义神经网络建筑以获得深度学习的层。

创建

获取MATLAB中的深度学习层列表®,请参阅深度学习层的列表。要指定具有按顺序连接的所有图层的神经网络的体系结构,请直接创建一系列层。要指定图层可以具有多个输入或输出的网络的体系结构,请使用aLayerGraph目的。

或者,您可以使用来自Caffe,Keras和Onnx的图层importCaffeLayers,importKeraslayers., 和importonnxLayers.分别。

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

对象的功能

trainNetwork 火车深度学习神经网络

例子

全部收缩

定义卷积神经网络架构,用于使用一个卷积层,Relu层和完全连接的层进行分类。

层= [imageInputlayer([28 28 3])卷积2dlayer([5 5],10)rululayer全连接列(10)softmaxlayer分类层]
层= 6 x1层与层:数组1”的形象输入28 x28x3图像zerocenter正常化2”10 5 x5的卷积,卷积步伐[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;层= [输入conv relu fc sm co]
层= 6 x1层与层:数组1”的形象输入28 x28x3图像zerocenter正常化2”10 5 x5的卷积,卷积步伐[1]和填充[0 0 0 0]3”ReLU ReLU 4”完全连接10完全连接层5”Softmax Softmax 6”crossentropyex分类输出

定义卷积神经网络架构,用于使用一个卷积层,Relu层和完全连接的层进行分类。

层= [imageInputLayer([28 28 3]) convolution2dLayer([5 5],10) relullayer fullconnectedlayer (10) softmaxLayer classiationlayer];

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

层(1)
ANS =具有属性的ImageInputLayer:name:''输入:[28 28 3] HyperParameters DataAugmentation:'None'归一化:'Zerocenter'标准化;'Auto'均值:[]

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

层(1)。InputSize
ans =1×328日28日3

显示卷积层的步幅。

层(2)。步
ans =1×21

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

层(4)。BiasLearnRateFactor
ans = 1

为深度学习创建一个简单的有向无环图(DAG)网络。训练网络对数字图像进行分类。本例中的简单网络包括:

  • 具有按顺序连接的层的主要分支。

  • 一个快捷方式连接包含单个的1乘1卷积层。快捷连接使参数梯度更容易地从输出层流向网络的早期层。

创建网络的主要分支作为一个层阵列。添加层将多个输入元素相加。指定添加层要相加的输入数。所有层必须有名称,并且所有的名称必须是唯一的。

图层= [imageInputLayer([28 28 1],“名字”,“输入”16) convolution2dLayer(5日,“填充”,'相同的',“名字”,“conv_1”) batchNormalizationLayer (“名字”,'bn_1') reluLayer (“名字”,“relu_1”32岁的)convolution2dLayer (3“填充”,'相同的',“步”2,“名字”,“conv_2”) batchNormalizationLayer (“名字”,“BN_2”) reluLayer (“名字”,“relu_2”32岁的)convolution2dLayer (3“填充”,'相同的',“名字”,'conv_3') batchNormalizationLayer (“名字”,'bn_3') reluLayer (“名字”,“relu_3”)附加层(2,“名字”,“添加”) averagePooling2dLayer (2“步”2,“名字”,“avpool”)全连接层(10,“名字”,'fc') softmaxLayer (“名字”,“softmax”scassificationlayer(“名字”,“classOutput”)];

从图层阵列创建一个图层图。分层图将所有层连接起来按顺序。绘制层图。

lgraph = layerGraph(层);图绘制(lgraph)

创建一个1-1卷积层并将其添加到图层图中。指定卷积滤波器和步幅的数量,以便激活大小与激活大小匹配“relu_3”层。这种安排使添加层能够添加的输出“skipConv”“relu_3”层。要检查该层是否在图形中,绘制图层图形。

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

控件创建快捷连接“relu_1”层的“添加”层。因为您在创建添加层时指定了两个输入数,所以该层有两个名为“三机”“in2”。这“relu_3”层已经连接到“三机”输入。连接“relu_1”层的“skipConv”层和“skipConv”层的“in2”输入的“添加”层。添加层现在会汇总输出“relu_3”“skipConv”层。要检查图层是否正确连接,请绘制图层图。

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

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

[XTrain, YTrain] = digitTrain4DArrayData;[XValidation, YValidation] = digitTest4DArrayData;

指定培训选项并培训网络。trainNetwork使用每个验证数据验证网络ValidationFrequency迭代。

选项=培训选项('sgdm',“MaxEpochs”8“洗牌”,'每个时代','vightationdata',{xvalidation,yvalidation},'验证职业',30,'verbose',错误的,“阴谋”,“训练进步”);net = trainnetwork(xtrain,ytrain,3.选项);

显示培训网络的属性。网络是一个DAGNetwork目的。

[16×1 nnet.cnn.layer.Layer]连接:[16×2 table] InputNames: {'input'} OutputNames: {'classOutput'}

对验证图像进行分类并计算精度。这个网络非常准确。

ypredictict =分类(net,xvalidation);精度=均值(ypredicted == yvalidation)
精度= 0.9930.
介绍了R2016a