主要内容

setLearnRateFactor

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

描述

例子

layerUpdated= setLearnRateFactor (,parameterName,因素)集的学习速率因子参数的名称parameterName因素

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

例子

layerUpdated= setLearnRateFactor (,parameterPath,因素)集的学习速率因子参数指定的路径parameterPath。使用这个参数时语法dlnetwork对象在一个自定义层。

例子

dlnetUpdated= setLearnRateFactor (dlnet,layerName,parameterName,因素)集的学习速率因子参数的名称parameterName层的名字layerName为指定的dlnetwork对象。

例子

dlnetUpdated= setLearnRateFactor (dlnet,parameterPath,因素)集的学习速率因子参数specifiedby路径parameterPath。使用这种语法的参数是一个嵌套层。

例子

全部折叠

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

创建一个包含自定义层的层数组preluLayer,在这个例子作为支持文件。金宝app进入这一层,打开这个例子作为一个活的脚本。

层= [imageInputLayer([1] 28日28日)convolution2dLayer (5、20) batchNormalizationLayer preluLayer (20) fullyConnectedLayer (10) softmaxLayer classificationLayer];

设置的学习速率因子α可学的参数的preluLayer2。

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

查看更新后的学习速率的因素。

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

设置和获取的学习速率因子可学的一个嵌套层的参数。

使用自定义创建一个剩余块层层residualBlockLayer这个例子作为支持文件。金宝app访问这个文件,打开这个例子作为一个活的脚本。

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

视图层的嵌套网络。

layer.Network.Layers
ans x1 = 7层阵列层: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的)reluLayer (“名字”,“relu”)fullyConnectedLayer (10“名字”,“俱乐部”)softmaxLayer (“名字”,“sm”));lgraph = layerGraph(层);dlnet = dlnetwork (lgraph);

设置的学习速率因子“重量”可学的参数卷积的层使用setLearnRateFactor函数。

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

得到更新的学习速率因子使用getLearnRateFactor函数。

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

设置和获取的学习速率因子可学的参数的一个嵌套层dlnetwork对象。

创建一个dlnetwork对象包含自定义层residualBlockLayer这个例子作为支持文件。金宝app访问这个文件,打开这个例子作为一个活的脚本。

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 x1 = 7层阵列层: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‘添加’除了Element-wise添加2输入7‘relu2 ReLU ReLU

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

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

获得更新的学习速率因子使用getLearnRateFactor函数。

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

加载一个pretrained网络。

网= squeezenet;

转换层的网络图,把输出层,将它转换成一个dlnetwork对象。

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

可学的财产的dlnetwork对象是一个包含网络的可学的参数表。嵌套层的表包括参数在不同的行。查看可学的表的前几行。

可学的= dlnet.Learnables;头(可学的)
ans =8×3表层参数值_____________ _____ ___________________“conv1”“权重”{3 x3x3x64 dlarray}“conv1”“偏见”{1 x1x64 dlarray}“fire2-squeeze1x1”“权重”{1 x1x64x16 dlarray}“fire2-squeeze1x1”“偏见”{1 x1x16 dlarray}“fire2-expand1x1”“权重”{1 x1x16x64 dlarray}“fire2-expand1x1”“偏见”{1 x1x64 dlarray}“fire2-expand3x3”“权重”{3 x3x16x64 dlarray}“fire2-expand3x3”“偏见”{1 x1x64 dlarray}

冻结的可学的参数网络,遍历可学的参数和设置率为0使用学习setLearnRateFactor函数。

因素= 0;numLearnables =大小(可学的,1);i = 1: numLearnables layerName = learnables.Layer(我);parameterName = learnables.Parameter(我);dlnet = setLearnRateFactor (dlnet, layerName、parameterName因素);结束

培训时使用更新后的学习速率的因素,你必须通过dlnetwork对象更新函数自定义训练循环。例如,使用命令

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

输入参数

全部折叠

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

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

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

软件由全球学习速率繁殖这个因素来确定学习速率为指定的参数。例如,如果因素是2,那么学习速率为指定的参数是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

例子:2

在嵌套层路径参数,指定为字符串标量或特征向量。一个嵌套层本身就是一个自定义层定义了层图作为一种可习得的参数。

如果输入setLearnRateFactor是一个嵌套层,那么参数路径形式吗“propertyName / layerName / parameterName”,地点:

  • propertyName包含一个属性的名称是什么dlnetwork对象

  • layerName层的名称是dlnetwork对象

  • parameterName参数的名称吗

如果有多个层次的嵌套层,然后指定每个层次使用的形式“propertyName1 / layerName1 /…/ propertyNameN / layerNameN / parameterName”,在那里propertyName1layerName1对应的输入层setLearnRateFactor功能,后续部分对应于更深层次的水平。

例子:为输入层setLearnRateFactor,路径“网络/ conv1 /重量”指定了“重量”层的参数名称“conv1”dlnetwork对象由layer.Network

如果输入setLearnRateFactor是一个dlnetwork对象和所需的参数是在一个嵌套层,然后参数路径的形式“layerName1 / propertyName / layerName / parameterName”,地点:

  • layerName1输入层的名称dlnetwork对象

  • propertyName层包含的财产吗dlnetwork对象

  • layerName层的名称是dlnetwork对象

  • parameterName参数的名称吗

如果有多个层次的嵌套层,然后指定每个层次使用的形式“layerName1 / propertyName1 /…/ layerNameN / propertyNameN / layerName / parameterName”,在那里layerName1propertyName1对应的输入层setLearnRateFactor功能,后续部分对应于更深层次的水平。

例子:dlnetwork输入setLearnRateFactor,路径“res1 /网络/ conv1 /重量”指定了“重量”层的参数名称“conv1”dlnetwork对象由layer.Network,在那里层的名字吗“res1”在输入网络dlnet

数据类型:字符|字符串

网络定制培训循环,指定为一个dlnetwork对象。

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

数据类型:字符|字符串

输出参数

全部折叠

更新层,作为一个返回

更新网络,作为一个返回dlnetwork

介绍了R2017b