主要内容

setL2Factor

设置层可学习参数的L2正则化因子

描述

例子

= setL2Factor (parameterName因素用名称设置参数的L2正则化因子parameterName因素

对于内置层,你可以通过使用相应的属性直接设置L2正则化因子。例如,对于aconvolution2dLayer层,语法层= setL2Factor(层、权重的因素)相当于层。WeightL2Factor =因素

layerUpdated= setL2Factor (parameterPath因素设置路径指定参数的L2正则化因子parameterPath.当参数位于dlnetwork对象在自定义层中。

dlnetUpdated= setL2Factor (dlnetlayerNameparameterName因素用名称设置参数的L2正则化因子parameterName在名称图层中layerName为指定的dlnetwork对象。

dlnetUpdated= setL2Factor (dlnetparameterPath因素设置路径指定参数的L2正则化因子parameterPath.当参数在嵌套层时使用此语法。

例子

全部折叠

设置并得到一层可学习参数的L2正则化因子。

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

创建一个包含自定义层的层阵列preluLayer

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

设置的L2正则化因子α的可学习参数preluLayer2。

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

查看更新的L2正规化因子。

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

设置并得到嵌套层的一个可学习参数的L2正则化因子。

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

numFilters = 64;层= residualBlockLayer (numFilters)
layer = residualBlockLayer带有属性:Name: " Learnable Parameters Network: [1x1 dlnetwork] State Parameters无属性。显示所有属性

查看嵌套网络的层次。

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

设置可学习参数的L2正则化因子“重量”层的“conv1”2 .使用setL2Factor函数。

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

得到更新的L2正则化因子使用getL2Factor函数。

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

设置并得到a的可学习参数的L2正则化因子dlnetwork对象。

创建一个dlnetwork对象。

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

设置的L2正则化因子“重量”可学习参数的卷积层2使用setL2Factor函数。

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

得到更新的L2正则化因子使用getL2Factor函数。

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

a中嵌套层的一个可学习参数的L2正则化系数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(层);

可学的财产的dlnetwork对象是一个包含网络可学习参数的表。该表在单独的行中包含嵌套层的参数。查看该层可学习参数“res1”

可学的= dlnet.Learnables;idx =可学的。层= =“res1”;可学的(idx:)
ans =8×3表层参数值______ _______________________ ___________________ "res1" "Network/conv1/Weights" {3x3x32x32 dlarray} "res1" "Network/conv1/Bias" {1x1x32 dlarray} "res1" "Network/gn1/Offset" {1x1x32 dlarray} "res1" "Network/gn1/Scale" {1x1x32 dlarray} "res1" "Network/conv2/Weights" {3x3x32x32 dlarray} "res1" "Network/conv2/Weights" {3x3x32x32 dlarray} "res1" "Network/conv2/Bias" {1x1x32 dlarray"res1" "Network/gn2/Offset" {1x1x32 dlarray} "res1" "Network/gn2/Scale" {1x1x32 dlarray}

的层“res1”,设置可学习参数的L2正则化因子“重量”层的“conv1”2 .使用setL2Factor函数。

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

得到更新的L2正则化因子使用getL2Factor函数。

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

输入参数

全部折叠

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

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

L2正则化因子的参数,指定为一个非负标量。

该软件将该因子与全局L2正则化因子相乘,以确定指定参数的L2正则化因子。例如,如果因素为2,则指定参数的L2正则化系数为全局L2正则化系数的2倍。的方法可以指定全局L2正则化因子trainingOptions函数。

例子:2

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

如果输入setL2Factor是嵌套层,那么参数路径有窗体吗“propertyName / layerName / parameterName”,地点:

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

  • layerName图层的名称是否在dlnetwork对象

  • parameterName参数的名称

如果有多层嵌套层,则使用表单指定每一层“propertyName1 / layerName1 /…/ propertyNameN / layerNameN / parameterName”,在那里propertyName1layerName1对应的层在输入setL2Factor函数,后面的部分对应更深的层次。

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

如果输入setL2Factor是一个dlnetwork对象和所需参数在嵌套层中,则参数路径具有形式“layerName1 / propertyName / layerName / parameterName”,地点:

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

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

  • layerName图层的名称是否在dlnetwork对象

  • parameterName参数的名称

如果有多层嵌套层,则使用表单指定每一层“layerName1 / propertyName1 /…/ layerNameN / propertyNameN / layerName / parameterName”,在那里layerName1propertyName1对应的层在输入setL2Factor函数,后面的部分对应更深的层次。

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

数据类型:字符|字符串

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

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

数据类型:字符|字符串

输出参数

全部折叠

更新的层,返回为

更新的网络,返回为dlnetwork

介绍了R2017b