主要内容

fullyConnectedLayer

完全连接层

描述

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

创建

描述

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

例子

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

特性

展开全部

完全连接

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

例子:10

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

参数和初始化

初始化权重的功能,指定为以下之一:

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

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

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

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

  • “零”—初始化权值为0。

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

  • 函数句柄——用自定义函数初始化权重。如果指定函数句柄,则该函数必须是这种形式的重量= func(深圳), 在哪里SZ.是重量的大小。例如,看到指定自定义权重初始化函数

属性时,层才初始化权重权重属性是空的。

数据类型:字符|细绳|function_handle

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

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

  • “的”-用1初始化偏差。

  • “narrow-normal”- 通过从正常分布的独立采样,零平均值和标准偏差0.01来初始化偏置。

  • 函数句柄——用自定义函数初始化偏差。如果指定函数句柄,则该函数必须是这种形式的偏见= func(深圳), 在哪里SZ.是偏差的大小。

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

数据类型:字符|细绳|function_handle

层权重,指定为矩阵。

层权值是可学习的参数。属性可以直接指定权重的初始值权重属性的层。当你训练一个网络,如果权重那个层的财产是非空的trainNetwork使用权重属性作为初始值。如果权重属性为空trainNetwork属性指定的初始化式WeightsInitializer属性的层。

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

数据类型:单身的|双倍的

层偏差,指定为矩阵。

层偏差是可学习的参数。当你训练一个网络,如果偏见是不是空的,然后trainNetwork使用偏见属性作为初始值。如果偏见是空的,然后trainNetwork使用指定的初始化式BiasInitializer

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

数据类型:单身的|双倍的

学习率和正规化

权值的学习率因子,指定为非负标量。

该软件通过全局学习率乘以此因素来确定该层中权重的学习率。例如,如果举重性活动器2,则该层权重的学习率为当前全局学习率的两倍。该软件根据您指定的设置来确定全局学习率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

层名,指定为字符向量或字符串标量。为阵列输入,trainNetworkassembleNetworklayerGraph,dlnetwork.函数自动为层分配名称姓名设置为

数据类型:字符|细绳

此属性是只读的。

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

数据类型:双倍的

此属性是只读的。

输入层名。这一层只接受单个输入。

数据类型:细胞

此属性是只读的。

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

数据类型:双倍的

此属性是只读的。

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

数据类型:细胞

例子

全部折叠

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

层= fullyConnectedLayer (10,“名字”'fc1'
tillay =具有属性的全连接层:名称:'FC1'超参数输入:'auto'输出:10个学习参数权重:[]偏置:[]显示所有属性

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

层= [......imageInputLayer([28 28 1])卷积2dlayer (5,20) reluLayer maxPooling2dLayer(2, 20)“步”,2) fulllyconnectedlayer (10) softmaxLayer classifier]
图层数组: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的完全连接层,并将权重初始化器指定为He初始化器。

outputSize = 10;层= fullyConnectedLayer (outputSize,“WeightsInitializer”“他”
tillay =具有属性的全连接层:名称:''QuidEnPareters InputSize:'auto'输出:10个学习参数权重:[]偏见:[]显示所有属性

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

指定自定义初始化函数

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

创建具有输出大小10的完全连接的图层,并指定使用标准偏差为0.0001的高斯分布来示出权重和偏置的初始化器。

outputSize = 10;weightsInitializationFcn = @(sz) rand(sz) * 0.0001;biasInitializationFcn = @(sz) rand(sz) * 0.0001;层= fullyConnectedLayer (outputSize,......“WeightsInitializer”,@(sz)rand(sz)* 0.0001,......“BiasInitializer”,@(sz)rand(sz)* 0.0001)
tillay =具有属性的全连接层:名称:''QuidEnPareters InputSize:'auto'输出:10个学习参数权重:[]偏见:[]显示所有属性

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

直接指定权重和偏差

创建一个完全连接的图层,输出大小为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] Glorot,Xavier和Yoshua Bengio。“了解训练深馈神经网络的难度。”在第十三届国际人工智能和统计会议论文集, 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