fullyConnectedLayer
完全连接层
描述
一个完全连接层增加输入权重矩阵,然后添加一个偏差向量。
创建
描述
返回一个完全连接层和指定层
= fullyConnectedLayer (outputSize
)OutputSize
财产。
属性
完全连接
OutputSize
- - - - - -输出的大小
正整数
输出大小完全连接层,指定为一个正整数。
例子:10
InputSize
- - - - - -输入的大小
“汽车”
(默认)|正整数
输入大小完全连接层,一个正整数或指定“汽车”
。如果InputSize
是“汽车”
,那么软件自动确定输入的大小在训练。
参数和初始化
WeightsInitializer
- - - - - -函数来初始化权重
“glorot”
(默认)|“他”
|“正交”
|“narrow-normal”
|“零”
|“的”
|函数处理
初始化权重函数,指定为以下之一:
“glorot”
——初始化权重Glorot初始值设定项[1](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (InputSize + OutputSize)
。“他”
——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / InputSize
。“正交”
——初始化输入权重问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[3]“narrow-normal”
——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。“零”
——初始化权重为零。“的”
——初始化权重的。函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能
重量= func(深圳)
,在那里深圳
权重的大小。例如,看到的指定自定义权重的初始化函数。
层只初始化时的重量权重
属性是空的。
数据类型:字符
|字符串
|function_handle
BiasInitializer
- - - - - -函数来初始化倾向
“零”
(默认)|“narrow-normal”
|“的”
|函数处理
函数初始化倾向,指定为以下之一:
“零”
——初始化与零偏差。“的”
——初始化倾向。“narrow-normal”
——初始化倾向独立抽样从正态分布与零均值和标准偏差0.01。函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能
偏见= func(深圳)
,在那里深圳
偏差的大小。
层时才初始化倾向偏见
属性是空的。
数据类型:字符
|字符串
|function_handle
权重
- - - - - -层的重量
[]
(默认)|矩阵
层权重,指定为一个矩阵。
层权重可学的参数。您可以指定权重的初始值直接使用权重
层的属性。训练一个网络时,如果权重
属性层的非空的trainNetwork
使用权重
属性的初始值。如果权重
属性是空的,那么trainNetwork
使用指定的初始化程序WeightsInitializer
层的属性。
在培训时,权重
是一个OutputSize
——- - - - - -InputSize
矩阵。
数据类型:单
|双
偏见
- - - - - -层的偏见
[]
(默认)|矩阵
层偏见,指定为一个矩阵。
层偏差是可学的参数。训练一个网络时,如果偏见
非空的,那么trainNetwork
使用偏见
属性的初始值。如果偏见
是空的,然后trainNetwork
使用指定的初始化程序BiasInitializer
。
在培训时,偏见
是一个OutputSize
——- - - - - -1
矩阵。
数据类型:单
|双
学习速率和正规化
WeightLearnRateFactor
- - - - - -学习速率因子权重
1(默认)|负的标量
学习速率因子权重,指定为负的标量。
软件由全球学习速率繁殖这个因素确定权重的学习速率这一层。例如,如果WeightLearnRateFactor
是2,然后在这一层权值的学习速率是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions
函数。
例子:2
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1(默认)|负的标量
学习速率因子的偏见,指定为负的标量。
软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor
是2,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions
函数。
例子:2
WeightL2Factor
- - - - - -L2正则化因子权重
1(默认)|负的标量
L2正则化因子权重,指定为负的标量。
软件繁殖这个因素在全球L2正则化因子来确定权重的L2正则化这一层。例如,如果WeightL2Factor
是2,然后在这一层权重的L2正规化是全球L2正则化系数的两倍。您可以指定全球L2正则化因子使用trainingOptions
函数。
例子:2
BiasL2Factor
- - - - - -偏见的L2正则化因素
0(默认)|负的标量
L2正则化因子的偏见,指定为负的标量。
软件繁殖这个因素在全球L2正则化因子确定L2正规化的偏见在这一层。例如,如果BiasL2Factor
是2,那么L2正规化的偏见这一层是全球L2正则化系数的两倍。您可以指定全球L2正则化因子使用trainingOptions
函数。
例子:2
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。包括在一层一层图,您必须指定一个非空的独特的层的名字。如果你训练一个网络层和系列的名字
被设置为”
软件自动分配一个名称,那么在训练时间层。
数据类型:字符
|字符串
NumInputs
- - - - - -输入数量
1(默认)
输入层的数量。这一层只接受一个输入。
数据类型:双
InputNames
- - - - - -输入名字
{'在'}
(默认)
输入层的名称。这一层只接受一个输入。
数据类型:细胞
NumOutputs
- - - - - -数量的输出
1(默认)
输出层的数量。这一层只有一个输出。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
(默认)
输出层的名称。这一层只有一个输出。
数据类型:细胞
例子
创建完全连接层
创建一个完全连接层与输出大小为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”分类输出
指定初始重量和偏见完全连接层
指定重量和偏见初始化函数,使用WeightsInitializer
和BiasInitializer
属性分别。直接指定重量和偏见,使用权重
和偏见
属性分别。
指定初始化函数
创建一个完全连接层和一个输出大小为10和指定要他初始化权值初始化。
outputSize = 10;层= fullyConnectedLayer (outputSize,“WeightsInitializer”,“他”)
层= FullyConnectedLayer属性:名称:“Hyperparameters InputSize:“汽车”OutputSize: 10可学的参数权重:[]偏见:[]显示所有属性
请注意,权重
和偏见
属性是空的。在训练时,软件初始化这些属性使用指定的初始化函数。
指定自定义初始化函数
指定自己的初始化函数的重量和偏见,设置WeightsInitializer
和BiasInitializer
属性函数处理。对于这些属性,指定函数句柄将重量和偏见的大小作为输入和输出初始化值。
创建一个完全连接层与输出尺寸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和设置权重和偏见W
和b
在垫子上文件FCWeights.mat
分别。
outputSize = 10;负载FCWeights层= fullyConnectedLayer (outputSize,…“重量”W,…“偏见”,b)
层= FullyConnectedLayer属性:名称:“Hyperparameters InputSize: 720 OutputSize: 10可学的参数权重:[10 x720双)偏见:x1双[10]显示所有属性
在这里,权重
和偏见
属性包含指定值。在训练时,如果这些属性非空,则软件使用指定的值作为初始重量和偏见。在这种情况下,软件不使用初始化功能。
更多关于
完全连接层
一个完全连接层增加输入权重矩阵,然后添加一个偏差向量。
卷积(和采样下来)层后面跟着一个或多个完全连接层。
顾名思义,所有神经元完全连接层连接到所有的神经元在前面的层。这一层结合的所有功能(本地信息)学习通过前面的层在图像识别更大的模式。对于分类问题,最后完全连接层结合了特征对图像进行分类。这是原因outputSize
争论的最后完全连接层网络等于数据集的类的数量。对于回归问题,输出大小必须等于响应变量的数量。
您还可以调整学习速率和正则化参数这一层使用名称-值对相关参数在创建完全连接层。如果你选择不调整它们,然后trainNetwork
使用全球训练参数定义的trainingOptions
函数。在全球和层培训选项的详细信息,请参见设置参数和卷积神经网络训练。
完全连接层增加权重矩阵的输入W然后添加一个偏差向量b。
如果层是一个序列的输入(例如,在一个LSTM网络),然后完全连接层行为独立在每个时间步。例如,如果层之前完全连接层输出数组X的大小D——- - - - - -N——- - - - - -年代,然后完全连接层输出数组Z的大小outputSize
——- - - - - -N——- - - - - -年代。在时间步t的,相应的条目Z是
,在那里
表示时间步t的X。
兼容性的考虑
默认初始化权重Glorot
行为改变R2019a
从R2019a开始,软件,默认情况下,初始化层使用Glorot初始化这一层的权重。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。
在以前的版本中,软件,默认情况下,初始化层的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置“WeightsInitializer”
层的选项“narrow-normal”
。
引用
[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编码器™。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。