主要内容

setLearnRateFactor

设置层可学习参数的学习速率因子

描述

实例

layerUpdated= setLearnRateFactor (,参数名,因素)使用名称设置参数的学习速率因子参数名因素

对于内置层,您可以通过使用相应的属性直接设置学习率因子。例如,对于aconvolution2dLayer层,语法层= setLearnRateFactor(层、权重的因素)相当于层。WeightLearnRateFactor =因素

实例

layerUpdated= setLearnRateFactor (,参数路径,因素)设置路径指定参数的学习速率因子参数路径.当参数位于dlnetwork对象在自定义层中。

实例

dlnetUpdated= setLearnRateFactor (dlnet,layerName,参数名,因素)使用名称设置参数的学习速率因子参数名在名称图层中layerName为指定的dlnetwork对象。

实例

dlnetUpdated= setLearnRateFactor (dlnet,参数路径,因素)设置路径指定的参数的学习速率因子参数路径. 当参数位于嵌套层中时,请使用此语法。

例子

全部折叠

设置并获取自定义PReLU层的可学习参数的学习速率因子。

创建包含自定义图层的图层阵列前奏者,附加到此示例作为支持文件。万博1manbetx要访问此层,请将此示例作为活动脚本打开。

层= [...imageInputLayer([28 28 1])卷积2dlayer (5,20) batchNormalizationLayer preluLayer(20) fulllyconnectedlayer (10) softmaxLayer classificationLayer];

设置机器的学习速率系数α可学习的参数前奏者到2。

层(4)=setLearnRateFactor(层(4),“阿尔法”2);

查看更新的学习率系数。

因素= getLearnRateFactor(层(4),“阿尔法”)
因素= 2

设置并获取嵌套层的可学习参数的学习率因子。

创建一个残余块层使用自定义层residualBlockLayer作为支持文件附加到本示例中。万博1manbetx要访问此文件,请将此示例作为Live Script打开。

numFilters = 64;层= residualBlockLayer (numFilters)
layer=residualBlockLayer,属性:名称:“”可学习参数网络:[1x1 dlnetwork]状态参数无属性。显示所有属性

查看嵌套网络的层次。

layer.Network.Layers
ans = 7x1 Layer array with layers:64 3 x3的conv1卷积运算与步幅[1]和填充“相同”2“gn1”集团标准化规范化3‘relu1 ReLU ReLU 4 conv2卷积64 3 x3的隆起与步幅[1]和填充“相同”5“gn2”集团标准化规范化6‘添加’除了Element-wise添加2输入7‘relu2 ReLU ReLU

设置可学习参数的学习率因子“重量”层的“conv1”2 .使用setLearnRateFactor作用

因素= 2;一层一层= setLearnRateFactor (,“网络/ conv1 /重量”,因子);

使用getLearnRateFactor作用

因素= getLearnRateFactor(层,“网络/ conv1 /重量”)
因素= 2

设置并获取可学习参数的学习率因子dlnetwork对象。

创建一个dlnetwork对象。

[imageInputLayer([28 28 1],]),“归一化”,“没有”,“姓名”,“在”20岁的)convolution2dLayer (5“姓名”,“conv”) batchNormalizationLayer (“姓名”,bn的)雷卢耶(“姓名”,“relu”) fullyConnectedLayer (10“姓名”,“俱乐部”) softmaxLayer (“姓名”,“sm”));lgraph = layerGraph(层);dlnet = dlnetwork (lgraph);

设置机器的学习速率系数“重量”可学习参数的卷积层2使用setLearnRateFactor作用

因素= 2;dlnet = setLearnRateFactor (dlnet,“conv”,“重量”,因子);

使用。获取更新的学习率因子getLearnRateFactor作用

因素= getLearnRateFactor (dlnet,“conv”,“重量”)
因素= 2

集合中嵌套层的可学习参数的学习率因子dlnetwork对象。

创建一个dlnetwork包含自定义层的residualBlockLayer作为支持文件附加到本示例中。万博1manbetx要访问此文件,请将此示例作为Live Script打开。

inputSize=[2242243];numFilters=32;numclass=5;层=[imageInputLayer(inputSize,“归一化”,“没有”,“姓名”,“在”)卷积2层(7,numFilters,“大步走”2,“填充”,“相同”,“姓名”,“conv”)组规范化层(所有渠道的,“姓名”,“gn”)雷卢耶(“姓名”,“relu”) maxPooling2dLayer (3“大步走”2,“姓名”,“马克斯”) residualBlockLayer (numFilters“姓名”,“res1”) residualBlockLayer (numFilters“姓名”,“res2”) residualBlockLayer (2 * numFilters,“大步走”2,“IncludeSkipConvolution”符合事实的“姓名”,“res3”) residualBlockLayer (2 * numFilters,“姓名”,“res4”) residualBlockLayer (4 * numFilters,“大步走”2,“IncludeSkipConvolution”符合事实的“姓名”,“res5”) residualBlockLayer (4 * numFilters,“姓名”,“res6”)GlobalAveragePoolg2Dlayer(“姓名”,“差距”) fullyConnectedLayer (numClasses“姓名”,“俱乐部”) softmaxLayer (“姓名”,“sm”)]; dlnet=dlnetwork(层);

查看层中嵌套网络的层数“res1”

dlnet.Layers .Network.Layers (6)
ans = 7x1 Layer array with layers:1‘conv1卷积32 3 x3x32旋转步[1]和填充“相同”2“gn1”集团标准化规范化32通道分为1组3的relu1 ReLU ReLU 4 conv2的卷积32 3 x3x32旋转步[1]和填充“相同”5“gn2”集团标准化规范化32通道分成32组6 '添加'添加元素,添加2个输入

设置可学习参数的学习率因子“重量”层的“conv1”2 .使用setLearnRateFactor作用

因素= 2;dlnet = setLearnRateFactor (dlnet,“res1 /网络/ conv1 /重量”,因子);

使用getLearnRateFactor作用

因素= getLearnRateFactor (dlnet,“res1 /网络/ conv1 /重量”)
因素= 2

加载预训练网络。

网= squeezenet;

将网络转换为图层图,删除输出图层,然后将其转换为dlnetwork对象。

lgraph = layerGraph(净);lgraph = removeLayers (lgraph,“ClassificationLayer_predictions”);dlnet = dlnetwork (lgraph);

这个可学财产的dlnetwork对象是包含网络可学习参数的表。该表包含独立行中嵌套层的参数。查看learnables表的前几行。

可学的= dlnet.Learnables;头(可学的)
ans =8×3表(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU4 dlarray}“fire2-expand1x1”偏差“{1x16 dlarray}”fire2-expand3x3”权重{3x3x16x64 dlarray}“fire2-expand3x3”“偏置”{1x1x64 dlarray}

要冻结网络的可学习参数,请循环可学习参数,并使用setLearnRateFactor作用

系数=0;numLearnables=大小(可学习,1);对于i=1:numLearnables layerName=learnables.Layer(i);parameterName=可学习。参数(i);dlnet=setLearnRateFactor(dlnet、layerName、parameterName、factor);结束

要在训练时使用更新的学习速率系数,必须将dlnetwork对象传递给自定义训练循环中的更新函数。例如,使用命令

[dlnet、速度]= sgdmupdate (dlnet、渐变速度);

输入参数

全部折叠

输入层,指定为标量对象。

参数名称,指定为字符向量或字符串标量。

参数的学习率因子,指定为非负标量。

该软件将此因子乘以全局学习率,以确定指定参数的学习率。例如,如果因素为2,则指定参数的学习率是当前全局学习率的两倍。该软件根据指定的设置来确定全局学习率trainingOptions作用

例子:2.

嵌套层中的参数路径,指定为字符串标量或字符向量。嵌套层是自定义层,它本身将层图定义为可学习参数。

如果输入为setLearnRateFactor如果是嵌套层,则参数路径的形式为“propertyName/layerName/parameterName”,其中:

  • 属性名称属性的名称是否包含dlnetwork对象

  • layerName中图层的名称dlnetwork对象

  • 参数名参数的名称

如果有多个嵌套层,则使用表单指定每个层“propertyName1 / layerName1 /…/ propertyNameN / layerNameN / parameterName”,在那里propertyName1图层名称1对应的层在输入setLearnRateFactor功能,后续部分对应更深层次。

例子:为层输入setLearnRateFactor,路径“网络/ conv1 /重量”指定“重量”带有名称的图层的参数“conv1”dlnetwork对象网络层

如果输入为setLearnRateFactor是一个dlnetwork对象,并且所需参数位于嵌套层中,则参数路径具有以下形式“layerName 1/propertyName/layerName/parameterName”,其中:

  • 图层名称1图层的名称是否在输入中dlnetwork对象

  • 属性名称层的属性是否包含adlnetwork对象

  • layerName中图层的名称dlnetwork对象

  • 参数名参数的名称

如果有多个嵌套层,则使用表单指定每个层“layerName1/propertyName1/../LayerNames/PropertyNames/layerName/parameterName”,在那里图层名称1propertyName1对应的层在输入setLearnRateFactor功能,后续部分对应更深层次。

例子:对于dlnetwork输入到setLearnRateFactor,路径“res1/Network/conv1/Weights”指定“重量”带有名称的图层的参数“conv1”dlnetwork对象网络层,在那里图层有名字吗“res1”在输入网络中dlnet

数据类型:字符|一串

网络自定义训练循环,指定为dlnetwork对象。

图层名称,指定为字符串标量或字符向量。

数据类型:字符|一串

输出参数

全部折叠

更新的图层,以

更新的网络,返回为dlnetwork

在R2017b中引入