主要内容

fullyConnectedLayer

完全连接的层

描述

一个完全连通的层将输入乘以一个权值矩阵,然后添加一个偏置向量。

创建

描述

=全连接列(outputSize返回一个完全连接的层并指定输出财产。

例子

=全连接列(outputSize名称,值设置可选参数和初始化学习速率和正规化, 和的名字使用名称-值对的属性。例如,全康统计(10,'名称','fc1')创建一个完整连接的图层,输出大小为10,名称为'fc1'.您可以指定多个名称值对。用单引号括起每个属性名称。

属性

全部展开

完全连接

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

例子:10.

全连接层的输入大小,指定为正整数或“汽车”.如果InputSize“汽车”,然后软件在训练过程中自动确定输入的大小。

参数和初始化

函数初始化权值,指定为以下其中之一:

  • “glorot”-使用gloria初始化器初始化权重[1](也称为Xavier初始化器)。格洛特初始化器从均值和方差均为零的均匀分布中独立抽样2 / (InputSize + OutputSize)

  • '他'-使用He初始化器初始化权值[2].初始化器的样本来自均值和方差为零的正态分布2 /输入

  • '正交'- 初始化输入权重的QR分解给出的正交矩阵ZR对于随机矩阵Z从单位正态分布中抽样。[3]

  • '窄正常'-从均值为零、标准差为0.01的正态分布中独立抽样来初始化权重。

  • “零”- 用零初始化权重。

  • “的”—使用“1”初始化权重。

  • 功能句柄 - 使用自定义功能初始化权重。如果指定函数句柄,则函数必须是表单重量= func(深圳),在那里SZ.是重量的大小。例如,请参见指定自定义权重初始化功能

该图层仅初始化权重权重属性是空的。

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

函数初始化偏差,指定为以下任意一个:

  • “零”-用零初始化偏差。

  • “的”- 初始化偏差。

  • '窄正常'-从均值为零、标准差为0.01的正态分布中独立抽样来初始化偏差。

  • 功能句柄 - 使用自定义功能初始化偏差。如果指定函数句柄,则函数必须是表单BIAS = FUNC(SZ),在那里SZ.是偏见的大小。

该层仅在偏见属性是空的。

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

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

层权重是可学习参数。您可以直接指定权重的初始值权重层的财产。培训网络时,如果权重那个层的财产是非空的,然后trainNetwork用来权重属性作为初始值。如果权重属性为空trainNetwork使用指定的初始化程序WeightsInitializer层的财产。

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

数据类型:单身的|

层偏置,指定为矩阵。

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

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

数据类型:单身的|

学习速率和正规化

学习权重的因素,指定为非负标量。

该软件将这个因子乘以全局学习率,以确定这一层权重的学习率。例如,如果WeightLearnRateFactor是2,那么该层中权重的学习率是当前全球学习率的两倍。该软件根据指定的设置确定全局学习速率培训选项函数。

例子:2

偏差的学习率因子,指定为非负标量。

该软件通过全局学习率乘以此因素来确定该层中偏差的学习率。例如,如果BiasLearnRateFactor是2,那么层中偏差的学习率是当前全球学习率的两倍。该软件根据指定的设置确定全局学习速率培训选项函数。

例子:2

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

该软件将这个因子乘以全局L2正则化因子,以确定该层权重的L2正则化。例如,如果掌权2factor.为2,则该层权值的L2正则化是全局L2正则化因子的两倍。的方法可以指定全局L2正则化因子培训选项函数。

例子:2

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

该软件将该因子乘以L2的全局正则化因子,以确定该层偏差的L2正则化。例如,如果BiasL2Factor为2,则该层偏差的L2正则化是全局L2正则化因子的两倍。的方法可以指定全局L2正则化因子培训选项函数。

例子:2

层名,指定为字符向量或字符串标量。若要在层图中包含层,必须指定非空的唯一层名。如果你用层和的名字被设置为'',然后软件在训练时自动为该层分配一个名称。

数据类型:字符|字符串

层的输入数。此图层仅接受单个输入。

数据类型:

图层的输入名称。此图层仅接受单个输入。

数据类型:细胞

图层的输出数。此图层仅具有单个输出。

数据类型:

图层的输出名称。此图层仅具有单个输出。

数据类型:细胞

例子

全部折叠

创建一个完整连接的图层,输出大小为10,名称为'fc1'

tillay =全连接列(10,“名字”'fc1'
layer = fulllyconnectedlayer with properties: Name: 'fc1' Hyperparameters InputSize: 'auto' OutputSize: 10 Learnable Parameters Weights: [] Bias:[]显示所有属性

包含一个完全连接的层数组中。

层= [......imageInputLayer([28 28 1])卷积2dlayer (5,20) reluLayer maxPooling2dLayer(2, 20)“步”,2) fulllyconnectedlayer (10) softmaxLayer classifier]
图层= 7x1层阵列,图层:1''图像输入28x28x1图像与'zerocenter'归一化2''卷积20 5x5卷积与步幅[1 1]和填充[0 0 0 0] 3''Relu Relu 4''Max汇集2x2 max汇集步进[2 2]和填充[0 0 0 0] 5''完全连接的10完全连接的第6层''softmax softmax 7''分类输出crossentropyex

要指定权重和偏置初始化器功能,请使用WeightsInitializer偏见初始化器属性分别。要直接指定权重和偏差,请使用权重偏见属性分别。

指定初始化函数

创建一个输出大小为10的完全连接层,并将权重初始化器指定为He初始化器。

outputSize = 10;层= fullyConnectedLayer (outputSize,'掌控itializer''他'
layer = fulllyconnectedlayer with properties: Name: " Hyperparameters InputSize: 'auto' OutputSize: 10 Learnable Parameters Weights: [] Bias:[]显示所有属性

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

指定自定义初始化功能

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

创建一个输出大小为10的完整连接层,并指定初始化器,从一个标准偏差为0.0001的高斯分布中采样权重和偏差。

outputSize = 10;weightsInitializationFcn = @(sz) rand(sz) * 0.0001;biasInitializationFcn = @(sz) rand(sz) * 0.0001;层= fullyConnectedLayer (outputSize,......'掌控itializer',@(sz) rand(sz) * 0.0001,......'偏见的人',@(sz) rand(sz) * 0.0001)
layer = fulllyconnectedlayer with properties: Name: " Hyperparameters InputSize: 'auto' OutputSize: 10 Learnable Parameters Weights: [] Bias:[]显示所有属性

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

直接指定权重和偏差

创建一个完整连接的层,输出大小为10,并设置权重和偏差Wb在MAT文件中FCWeights.mat分别。

outputSize = 10;负载Fcweights.层= fullyConnectedLayer (outputSize,......“重量”W,......“偏见”, b)
layer = fulllyconnectedlayer with properties: Name: " Hyperparameters InputSize: 720 OutputSize: 10 Learnable Parameters Weights: [10x720 double] Bias: [10x1 double]显示所有属性

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

更多关于

全部展开

兼容性考虑因素

全部展开

行为在R2019a中改变

参考文献

[1]格洛洛,泽维尔,还有约书亚·本吉奥。理解训练深度前馈神经网络的困难在第十三国际人工智能和统计国际会议的诉讼程序, 249 - 356。撒丁岛,意大利:AISTATS, 2010。

何开明,张翔宇,任少青,孙健深入研究整流器:在图像网分类上超越人类水平的表现。在2015 IEEE计算机视觉国际会议论文集, 1026 - 1034。计算机视觉,2015。

Saxe, Andrew M., James L. McClelland和Surya Ganguli。深度线性神经网万博 尤文图斯络中学习的非线性动力学的精确解arXiv预印本arXiv: 1312.6120(2013)。

扩展功能

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

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

介绍了R2016a