setLearnRateFactor
设置层可学习参数的学习速率因子
语法
描述
设置具有名称的参数的学习速率因子layerUpdated
= setLearnRateFactor (层
,parameterName
,因素
)parameterName
在层
来因素
.
对于内置层,您可以使用相应的属性直接设置学习速率因子。例如,对于aconvolution2dLayer
层,语法层= setlearnnratefactor(层,'权重',因子)
等于层。weightlearnatefactor =因子
.
设置路径指定的参数的学习速率因子layerUpdated
= setLearnRateFactor (层
,parameterPath
,因素
)parameterPath
.类型中的参数时使用此语法dlnetwork
对象在自定义层中。
设置具有名称的参数的学习速率因子netUpdated
= setLearnRateFactor (网
,layerName
,parameterName
,因素
)parameterName
在带有name的层中layerName
对于指定的dlnetwork
对象。
设置路径指定的参数的学习速率因子netUpdated
= setLearnRateFactor (网
,parameterPath
,因素
)parameterPath
.当参数位于嵌套层时使用此语法。
例子
设置和获取可学习参数的学习率因子
设置并获取自定义PReLU层的一个可学习参数的学习率因子。
创建一个包含自定义层的层数组preluLayer
,附上实例作为支持文件。万博1manbetx要访问此层,请将此示例作为活动脚本打开。
层= [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) batchNormalizationLayer preluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];
属性的学习速率因子α
的可学习参数preluLayer
2。
layers(4) = setLearnRateFactor(layers(4),“阿尔法”2);
查看更新后的学习速率因子。
因子= getLearnRateFactor(图层(4),“阿尔法”)
因子= 2
设置和获取嵌套层可学习参数的学习率因子
设置并获得嵌套层的一个可学习参数的学习率因子。
使用自定义层创建一个剩余块层residualBlockLayer
作为支持文件附在本示例中。万博1manbetx要访问此文件,请将此示例作为Live Script打开。
numFilters = 64;layer = residualBlockLayer(numFilters)
Name: " Learnable Parameters Network: [1x1 dlnetwork] State Parameters无属性。显示所有属性
查看嵌套网络的层数。
layer.Network.Layers
ans = 7x1带有层的层数组:1' conv_1' 2d Convolution 64 3x3 convolutions with stride [1 1] and padding 'same' 2' groupnorm_1' Group Normalization Group Normalization 3 'relu_1' ReLU ReLU 4 'conv_2' 2d Convolution 64 3x3 convolutions with stride [1 1] and padding 'same' 5 'groupnorm_2' Group Normalization Group Normalization 6 'add'加法按元素添加2个输入7 'relu_2' ReLU ReLU
设置可学习参数的学习率因子“重量”
层的“conv_1”
2 .使用setLearnRateFactor
函数。
因子= 2;层= setlearnatefactor(层,“网络/ conv_1 /重量”、因素);
方法获取更新的学习率因子getLearnRateFactor
函数。
因子= getlearnatefactor(层,“网络/ conv_1 /重量”)
因子= 2
设置和获取学习速率因子dlnetwork
可学的参数
设置并得到a的可学习参数的学习率因子dlnetwork
对象。
创建一个dlnetwork
对象。
图层= [imageInputLayer([28 28 1],“归一化”,“没有”,“名字”,“在”20岁的)convolution2dLayer (5“名字”,“conv”) batchNormalizationLayer (“名字”,bn的) reluLayer (“名字”,“relu”) fullyConnectedLayer (10“名字”,“俱乐部”) softmaxLayer (“名字”,“sm”));lgraph = layerGraph(图层);Dlnet = dlnetwork(lgraph);
属性的学习速率因子“重量”
的卷积层的可学习参数为2setLearnRateFactor
函数。
因子= 2;dlnet = setlearnatefactor (dlnet,“conv”,“重量”、因素);
方法获取更新的学习速率因子getLearnRateFactor
函数。
因子= getLearnRateFactor(dlnet,“conv”,“重量”)
因子= 2
设置并获取嵌套的学习率因子dlnetwork
可学的参数
中嵌套层的一个可学习参数的学习率因子dlnetwork
对象。
创建一个dlnetwork
对象,其中包含自定义层residualBlockLayer
作为支持文件附在本示例中。万博1manbetx要访问此文件,请将此示例作为Live Script打开。
inputSize = [224 224 3];numFilters = 32;numClasses = 5;图层= [imageInputLayer(inputSize,“归一化”,“没有”,“名字”,“在”numFilters) convolution2dLayer(7日,“步”2,“填充”,“相同”,“名字”,“conv”) groupNormalizationLayer (所有渠道的,“名字”,“gn”) reluLayer (“名字”,“relu”) maxPooling2dLayer (3“步”2,“名字”,“马克斯”) residualBlockLayer (numFilters“名字”,“res1”) residualBlockLayer (numFilters“名字”,“它”) residualBlockLayer (2 * numFilters,“步”2,“IncludeSkipConvolution”,真的,“名字”,“res3”) residualBlockLayer (2 * numFilters,“名字”,“res4”) residualBlockLayer (4 * numFilters,“步”2,“IncludeSkipConvolution”,真的,“名字”,“res5”) residualBlockLayer (4 * numFilters,“名字”,“res6”) globalAveragePooling2dLayer (“名字”,“差距”) fullyConnectedLayer (numClasses“名字”,“俱乐部”) softmaxLayer (“名字”,“sm”));Dlnet = dlnetwork(层);
查看该层中嵌套网络的层数“res1”
.
dlnet.Layers .Network.Layers (6)
ans = 7x1带有层的层阵列:1' conv_1'二维Convolution 32 3x3x32 convolutions with stride[1 1]和padding 'same' 2' groupnorm_1'组归一化组归一化,32个通道分成1组3 'relu_1' ReLU ReLU 4 'conv_2'二维Convolution 32 3x3x32 convolutions with stride[1 1]和padding 'same' 5 'groupnorm_2'组归一化组归一化,32个通道分成32组6 'add'添加按元素添加2个输入7 'relu_2' ReLU ReLU
设置可学习参数的学习率因子“重量”
层的“conv_1”
2 .使用setLearnRateFactor
函数。
因子= 2;dlnet = setlearnatefactor (dlnet,“res1 /网络/ conv_1 /重量”、因素);
方法获取更新的学习率因子getLearnRateFactor
函数。
因子= getLearnRateFactor(dlnet,“res1 /网络/ conv_1 /重量”)
因子= 2
的可学习参数dlnetwork
对象
加载一个预先训练好的网络。
网=挤压网;
将网络转换为层图,删除输出层,并将其转换为dlnetwork
对象。
lgraph = layerGraph(net);lgraph = removeLayers(“ClassificationLayer_predictions”);Dlnet = dlnetwork(lgraph);
的可学的
的属性dlnetwork
对象是一个包含网络可学习参数的表。该表在单独的行中包含嵌套层的参数。查看learnables表的前几行。
learnables = dlnet.Learnables;头(可学的)
层参数值__________________ _________ ___________________ "conv1" "Weights" {3x3x3x64 dlarray} "conv1" "Bias" {1x1x64 dlarray} "fire2-squeeze1x1" "Weights" {1x1x16 dlarray} "fire2-expand1x1" "Weights" {1x1x64 dlarray} "fire2-expand3x3" "Weights" {3x3x16x64 dlarray} "fire2-expand3x3" Bias" {1x1x64 dlarray} "fire2-expand3x3" "Bias" {1x1x64 dlarray}
要冻结网络的可学习参数,可以遍历可学习参数,并使用setLearnRateFactor
函数。
因子= 0;numLearnables = size(learnables,1);为i = 1:numLearnables layerName = learnables.Layer(i);parameterName = learnables.Parameter(i);dlnet = setLearnRateFactor(dlnet,layerName,parameterName,factor);结束
要在训练时使用更新的学习率因子,必须将dlnetwork对象传递给自定义训练循环中的更新函数。例如,使用命令
[dlnet,velocity] = sgdmupdate(dlnet,gradients,velocity);
输入参数
层
- - - - - -输入层
标量层
对象
输入层,指定为标量层
对象。
parameterName
- - - - - -参数名称
特征向量|字符串标量
参数名称,指定为字符向量或字符串标量。
因素
- - - - - -学习率因子
负的标量
参数的学习率因子,指定为非负标量。
该软件将该因子乘以全局学习率,以确定指定参数的学习率。例如,如果因素
为2,则指定参数的学习率为当前全局学习率的两倍。属性指定的设置来确定全局学习率trainingOptions
函数。
例子:2
parameterPath
- - - - - -嵌套层中参数的路径
字符串标量|特征向量
嵌套层中参数的路径,指定为字符串标量或字符向量。嵌套层是一个自定义层,它本身将层图定义为一个可学习的参数。
如果输入为setLearnRateFactor
是嵌套层,那么参数路径有什么形式“propertyName / layerName / parameterName”
,地点:
propertyName
属性的名称是否包含dlnetwork
对象layerName
的层名是dlnetwork
对象parameterName
参数名称
如果嵌套层有多个级别,则使用表单指定每个级别“propertyName1 / layerName1 /…/ propertyNameN / layerNameN / parameterName”
,在那里propertyName1
而且layerName1
对应层中的输入到setLearnRateFactor
功能,随后的部分对应于更深的层次。
例子:对于层输入setLearnRateFactor
,小路“网络/ conv1 /重量”
指定了“重量”
具有名称的层的参数“conv1”
在dlnetwork
给出的对象层。网络
.
如果输入为setLearnRateFactor
是一个dlnetwork
对象与所需参数在一个嵌套层中,则参数路径具有形式“layerName1 / propertyName / layerName / parameterName”
,地点:
layerName1
在输入层的名称吗dlnetwork
对象propertyName
该层的属性是否包含dlnetwork
对象layerName
的层名是dlnetwork
对象parameterName
参数名称
如果嵌套层有多个级别,则使用表单指定每个级别“layerName1 / propertyName1 /…/ layerNameN / propertyNameN / layerName / parameterName”
,在那里layerName1
而且propertyName1
对应层中的输入到setLearnRateFactor
功能,随后的部分对应于更深的层次。
例子:为dlnetwork
输入setLearnRateFactor
,小路“res1 /网络/ conv1 /重量”
指定了“重量”
具有名称的层的参数“conv1”
在dlnetwork
给出的对象层。网络
,在那里层
这个层有名字吗“res1”
在输入网络中网
.
数据类型:字符
|字符串
网
- - - - - -神经网络
dlnetwork
对象
神经网络,指定为adlnetwork
对象。
layerName
- - - - - -层的名字
字符串标量|特征向量
层名,指定为字符串标量或字符向量。
数据类型:字符
|字符串
版本历史
在R2017b中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。