主要内容

setL2Factor

SET L2 Liqualization参数的正则化因子

描述

例子

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

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

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

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

dlnetUpdated= setL2Factor (dlnetParameterPath.因素设置路径指定的参数的L2正则化因子ParameterPath..当参数处于嵌套图层时,使用此语法。

例子

全部折叠

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

定义自定义proLu层。要创建此图层,请保存文件Prelulayer.m.在当前文件夹中。

创建一个包含自定义层的层阵列前列腺素

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

设置的L2正则化因子“α”学习参数的前列腺素到2。

层(4)= setL2Factor(层(4),“α”2);

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

因素= getL2Factor(层(4),“α”
因素= 2

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

创建一个残余块层使用自定义层residualBlockLayer将此示例附加为支持文件。金宝app要访问此文件,请将此示例打开为实时脚本。

numFilters = 64;层= residualBlockLayer (numFilters)
“Learnable Parameters Network: [1x1 dlnetwork] Show all properties .

查看嵌套网络的层次。

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

设置Learnable参数的L2正则化因子'重量'层的“conv1”到2使用setL2Factor功能。

因素= 2;tillay = setl2factor(图层,“网络/ conv1 /重量”,因素);

得到更新的L2正则化因子使用getL2Factor功能。

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

设置并获取学习参数的L2正则化因子dlnetwork对象。

创建一个dlnetwork对象。

[imageInputLayer([28 28 1],]),“归一化”'没有任何''姓名''在'20岁的)convolution2dLayer (5'姓名'“conv”batchnormalizationlayer('姓名'bn的)剥离('姓名'“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将此示例附加为支持文件。金宝app要访问此文件,请将此示例打开为实时脚本。

InputSize = [224 224 3];numfilters = 32;numclasses = 5;图层= [ImageInputLayer(InputSize,“归一化”'没有任何''姓名''在')卷积2dlayer(7,numfilters,'走吧'2,“填充”“相同”'姓名'“conv”)GroupnormalizationLayer(所有渠道的'姓名''GN')剥离('姓名'“relu”) maxPooling2dLayer (3'走吧'2,'姓名'“马克斯”)残留的块状(Numfilters,'姓名'“res1”)残留的块状(Numfilters,'姓名''Res2') 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”,设置Learnable参数的L2正则化因子'重量'层的“conv1”到2使用setL2Factor功能。

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

得到更新的L2正则化因子使用getL2Factor功能。

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

输入参数

全部折叠

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

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

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

该软件将该因子与全局L2正则化因子相乘,以确定指定参数的L2正则化因子。例如,如果因素是2,那么指定参数的L2正则化是全局L2正则化因子的两倍。您可以使用使用的全局L2正则化因子指定trainingOptions功能。

例子:2

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

如果输入到setL2Factor是嵌套图层,然后参数路径具有表单“propertyname / layername / parametername”, 在哪里:

  • propertyname.属性的名称是否包含dlnetwork目的

  • layerName是该图层的名称dlnetwork目的

  • ParameterName.是参数的名称

如果有多个级别的嵌套层,则使用表单指定每个级别“propertyName1 / layerName1 /…/ propertyNameN / layerNameN / parameterName”,在那里propertyname1.layername1.对应于输入中的图层setL2Factor功能,后续部分对应于更深层次的级别。

例子:为层输入setL2Factor, 路径“网络/ conv1 / weights”指定“重量”带有名称的图层的参数“conv1”dlnetwork由此给出的对象tillay.network.

如果输入到setL2Factor是A.dlnetwork对象和所需参数位于嵌套图层中,然后参数路径具有表单“layername1 / propertyname / layername / parametername”, 在哪里:

  • layername1.图层的名称是否在输入中dlnetwork目的

  • propertyname.层的属性是否包含adlnetwork目的

  • layerName是该图层的名称dlnetwork目的

  • ParameterName.是参数的名称

如果有多个级别的嵌套层,则使用表单指定每个级别“LayerName1 / propertyName1 / resernamen / propertynamen / layername / parametername”,在那里layername1.propertyname1.对应于输入中的图层setL2Factor功能,后续部分对应于更深层次的级别。

例子:为了dlnetwork输入到setL2Factor, 路径“Res1 / Network / Conv1 /权重”指定“重量”带有名称的图层的参数“conv1”dlnetwork由此给出的对象tillay.network.,在那里图层有名字吗“res1”在输入网络中dlnet

数据类型:字符|细绳

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

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

数据类型:字符|细绳

输出参数

全部折叠

更新的图层,返回a

更新的网络,返回adlnetwork

在R2017B中介绍