主要内容

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矩阵。

数据类型:|

学习速率、正规化

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

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

全球的软件增加这个因素l2正则化因子来确定l2正则化这一层的权重。例如,如果WeightL2Factor2,那么l2正则化这一层的权重是全球的两倍l2正则化因子。您可以指定全球l2正则化因子使用trainingOptions函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor2,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

图层名称,指定为一个特征向量或字符串标量。为数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配名称层的名称

数据类型:字符|字符串

这个属性是只读的。

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

数据类型:

这个属性是只读的。

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

数据类型:细胞

这个属性是只读的。

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

数据类型:

这个属性是只读的。

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

数据类型:细胞

例子

全部折叠

创建一个完全连接层与输出大小为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]显示所有属性

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

算法

全部展开

引用

[1]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”在《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。

[2]他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”在学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,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

全部展开