主要内容

fullyConnectedLayer

完全连接层

描述

一个完全连接层增加输入权重矩阵,然后添加一个偏差向量。

创建

描述

= fullyConnectedLayer (outputSize)返回一个完全连接层和指定OutputSize财产。

例子

= fullyConnectedLayer (outputSize,名称,值)设置可选参数和初始化,学习速率和正规化,的名字属性使用名称-值对。例如,fullyConnectedLayer(10、“名称”、“fc1”)创建一个完全连接层与输出大小为10名“fc1”。您可以指定多个名称-值对。在单引号附上每个属性的名字。

属性

全部展开

完全连接

输出大小完全连接层,指定为一个正整数。

例子:10

输入大小完全连接层,一个正整数或指定“汽车”。如果InputSize“汽车”,那么软件自动确定输入的大小在训练。

参数和初始化

初始化权重函数,指定为以下之一:

  • “glorot”——初始化权重Glorot初始值设定项[1](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (InputSize + OutputSize)

  • “他”——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / InputSize

  • “正交”——初始化输入权重正交矩阵的QR分解Z=R对于一个随机矩阵Z抽样单位正态分布。[3]

  • “narrow-normal”——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。

  • “零”——初始化权重为零。

  • “的”——初始化权重的。

  • 函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳权重的大小。例如,看到的指定自定义权重的初始化函数

层只初始化时的重量权重属性是空的。

数据类型:字符|字符串|function_handle

函数初始化倾向,指定为以下之一:

  • “零”——初始化与零偏差。

  • “的”——初始化倾向。

  • “narrow-normal”——初始化倾向独立抽样从正态分布与零均值和标准偏差0.01。

  • 函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能偏见= func(深圳),在那里深圳偏差的大小。

层时才初始化倾向偏见属性是空的。

数据类型:字符|字符串|function_handle

层权重,指定为一个矩阵。

层权重可学的参数。您可以指定权重的初始值直接使用权重层的属性。训练一个网络时,如果权重属性层的非空的trainNetwork使用权重属性的初始值。如果权重属性是空的,那么trainNetwork使用指定的初始化程序WeightsInitializer层的属性。

在培训时,权重是一个OutputSize——- - - - - -InputSize矩阵。

数据类型:|

层偏见,指定为一个矩阵。

层偏差是可学的参数。训练一个网络时,如果偏见非空的,那么trainNetwork使用偏见属性的初始值。如果偏见是空的,然后trainNetwork使用指定的初始化程序BiasInitializer

在培训时,偏见是一个OutputSize——- - - - - -1矩阵。

数据类型:|

学习速率和正规化

学习速率因子权重,指定为负的标量。

软件由全球学习速率繁殖这个因素确定权重的学习速率这一层。例如,如果WeightLearnRateFactor是2,然后在这一层权值的学习速率是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

例子:2

学习速率因子的偏见,指定为负的标量。

软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor是2,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

例子:2

L2正则化因子权重,指定为负的标量。

软件繁殖这个因素在全球L2正则化因子来确定权重的L2正则化这一层。例如,如果WeightL2Factor是2,然后在这一层权重的L2正规化是全球L2正则化系数的两倍。您可以指定全球L2正则化因子使用trainingOptions函数。

例子:2

L2正则化因子的偏见,指定为负的标量。

软件繁殖这个因素在全球L2正则化因子确定L2正规化的偏见在这一层。例如,如果BiasL2Factor是2,那么L2正规化的偏见这一层是全球L2正则化系数的两倍。您可以指定全球L2正则化因子使用trainingOptions函数。

例子:2

图层名称,指定为一个特征向量或字符串标量。包括在一层一层图,您必须指定一个非空的独特的层的名字。如果你训练一个网络层和系列的名字被设置为软件自动分配一个名称,那么在训练时间层。

数据类型:字符|字符串

输入层的数量。这一层只接受一个输入。

数据类型:

输入层的名称。这一层只接受一个输入。

数据类型:细胞

输出层的数量。这一层只有一个输出。

数据类型:

输出层的名称。这一层只有一个输出。

数据类型:细胞

例子

全部折叠

创建一个完全连接层与输出大小为10名“fc1”

层= fullyConnectedLayer (10,“名字”,“fc1”)
层= FullyConnectedLayer属性:名称:‘fc1 Hyperparameters InputSize:“汽车”OutputSize: 10可学的参数权重:[]偏见:[]显示所有属性

在一个包括一个完全连接层数组中。

层= [imageInputLayer([1] 28日28日)convolution2dLayer (5、20) reluLayer maxPooling2dLayer (2“步”,2)fullyConnectedLayer (10) softmaxLayer classificationLayer]
层= 7 x1层与层:数组1”的形象输入28 x28x1图像zerocenter正常化2”卷积20 5 x5旋转步[1]和填充[0 0 0 0]3”ReLU ReLU 4”马克斯池2 x2马克斯池步(2 - 2)和填充[0 0 0 0]5“完全连接10完全连接层6”Softmax Softmax crossentropyex 7”分类输出

指定重量和偏见初始化函数,使用WeightsInitializerBiasInitializer属性分别。直接指定重量和偏见,使用权重偏见属性分别。

指定初始化函数

创建一个完全连接层和一个输出大小为10和指定要他初始化权值初始化。

outputSize = 10;层= fullyConnectedLayer (outputSize,“WeightsInitializer”,“他”)
层= FullyConnectedLayer属性:名称:“Hyperparameters InputSize:“汽车”OutputSize: 10可学的参数权重:[]偏见:[]显示所有属性

请注意,权重偏见属性是空的。在训练时,软件初始化这些属性使用指定的初始化函数。

指定自定义初始化函数

指定自己的初始化函数的重量和偏见,设置WeightsInitializerBiasInitializer属性函数处理。对于这些属性,指定函数句柄将重量和偏见的大小作为输入和输出初始化值。

创建一个完全连接层与输出尺寸10,并指定初始化样本权重和偏见从高斯分布的标准偏差为0.0001。

outputSize = 10;weightsInitializationFcn = @(深圳)兰德(深圳)* 0.0001;biasInitializationFcn = @(深圳)兰德(深圳)* 0.0001;层= fullyConnectedLayer (outputSize,“WeightsInitializer”@兰德(深圳)* 0.0001(深圳),“BiasInitializer”@(深圳)兰德(深圳)* 0.0001)
层= FullyConnectedLayer属性:名称:“Hyperparameters InputSize:“汽车”OutputSize: 10可学的参数权重:[]偏见:[]显示所有属性

再一次,权重偏见属性是空的。在训练时,软件初始化这些属性使用指定的初始化函数。

直接指定重量和偏见

创建一个完全连接层和一个输出大小为10和设置权重和偏见Wb在垫子上文件FCWeights.mat分别。

outputSize = 10;负载FCWeights层= fullyConnectedLayer (outputSize,“重量”W,“偏见”,b)
层= FullyConnectedLayer属性:名称:“Hyperparameters InputSize: 720 OutputSize: 10可学的参数权重:[10 x720双)偏见:x1双[10]显示所有属性

在这里,权重偏见属性包含指定值。在训练时,如果这些属性非空,则软件使用指定的值作为初始重量和偏见。在这种情况下,软件不使用初始化功能。

更多关于

全部展开

兼容性的考虑

全部展开

行为改变R2019a

引用

[1]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”In《十三人工智能国际会议上和统计,249 - 256页。2010年。

[2]他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现imagenet分类。”In《IEEE计算机视觉国际会议,1026 - 1034页。2015年。

[3]萨克斯,安德鲁·M。,James L. McClelland, and Surya Ganguli. "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks."arXiv预印本arXiv: 1312.6120(2013)。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

介绍了R2016a