setL2Factor

Установитесь коэффициент регуляризации L2 настраиваемого параметра слоя

Описание

пример

layer = setL2Factor(layer,parameterName,factor) устанавливается коэффициент регуляризации L2 параметра с именем parameterName в layer к factor.

Для встроенных слоев можно установиться коэффициент регуляризации L2 непосредственно при помощи соответствующего свойства. Например, для convolution2dLayer слой, синтаксис layer = setL2Factor(layer,'Weights',factor) эквивалентно layer.WeightL2Factor = factor.

layerUpdated = setL2Factor(layer,parameterPath,factor) устанавливается коэффициент регуляризации L2 параметра, заданного путем parameterPath. Используйте этот синтаксис, когда параметр будет в dlnetwork объект в пользовательском слое.

dlnetUpdated = setL2Factor(dlnet,layerName,parameterName,factor) устанавливается коэффициент регуляризации L2 параметра с именем parameterName в слое с именем layerName для заданного dlnetwork объект.

dlnetUpdated = setL2Factor(dlnet,parameterPath,factor) устанавливается коэффициент регуляризации L2 параметра, заданного путем parameterPath. Используйте этот синтаксис, когда параметр будет во вложенном слое.

Примеры

свернуть все

Установите и получите фактор регуляризации L2 настраиваемого параметра слоя.

Создайте массив слоя, содержащий пользовательский слой preluLayer, присоединенный к этому пример как вспомогательный файл. Чтобы получить доступ к этому слою, откройте этот пример как live скрипт.

Создайте массив слоя включая пользовательский слой preluLayer.

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    batchNormalizationLayer
    preluLayer(20)
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer];

Установитесь коэффициент регуляризации L2 Alpha настраиваемый параметр preluLayer к 2.

layers(4) = setL2Factor(layers(4),"Alpha",2);

Просмотрите обновленный фактор регуляризации L2.

factor = getL2Factor(layers(4),"Alpha")
factor = 2

Установите и получите фактор регуляризации L2 настраиваемого параметра вложенного слоя.

Создайте остаточный слой блока с помощью пользовательского слоя residualBlockLayer присоединенный к этому примеру как вспомогательный файл. Чтобы получить доступ к этому файлу, откройте этот пример как Live Script.

numFilters = 64;
layer = residualBlockLayer(numFilters)
layer = 
  residualBlockLayer with properties:

       Name: ''

   Learnable Parameters
    Network: [1x1 dlnetwork]

   State Parameters
    No properties.

  Show all properties

Просмотрите слои вложенной сети.

layer.Network.Layers
ans = 
  7x1 Layer array with layers:

     1   'conv1'   Convolution           64 3x3 convolutions with stride [1  1] and padding 'same'
     2   'gn1'     Group Normalization   Group normalization
     3   'relu1'   ReLU                  ReLU
     4   'conv2'   Convolution           64 3x3 convolutions with stride [1  1] and padding 'same'
     5   'gn2'     Group Normalization   Group normalization
     6   'add'     Addition              Element-wise addition of 2 inputs
     7   'relu2'   ReLU                  ReLU

Установитесь коэффициент регуляризации L2 настраиваемого параметра 'Weights' из слоя 'conv1' к 2 использованиям setL2Factor функция.

factor = 2;
layer = setL2Factor(layer,'Network/conv1/Weights',factor);

Получите обновленный фактор регуляризации L2 использование getL2Factor функция.

factor = getL2Factor(layer,'Network/conv1/Weights')
factor = 2

Установите и получите фактор регуляризации L2 настраиваемого параметра dlnetwork объект.

Создайте dlnetwork объект.

layers = [
    imageInputLayer([28 28 1],'Normalization','none','Name','in')
    convolution2dLayer(5,20,'Name','conv')
    batchNormalizationLayer('Name','bn')
    reluLayer('Name','relu')
    fullyConnectedLayer(10,'Name','fc')
    softmaxLayer('Name','sm')];

lgraph = layerGraph(layers);

dlnet = dlnetwork(lgraph);

Установитесь коэффициент регуляризации L2 'Weights' настраиваемый параметр слоя свертки к 2 использованиям setL2Factor функция.

factor = 2;
dlnet = setL2Factor(dlnet,'conv','Weights',factor);

Получите обновленный фактор регуляризации L2 использование getL2Factor функция.

factor = getL2Factor(dlnet,'conv','Weights')
factor = 2

Установите и получите фактор регуляризации L2 настраиваемого параметра вложенного слоя в dlnetwork объект.

Создайте dlnetwork объект, содержащий пользовательский слой residualBlockLayer присоединенный к этому примеру как вспомогательный файл. Чтобы получить доступ к этому файлу, откройте этот пример как Live Script.

inputSize = [224 224 3];
numFilters = 32;
numClasses = 5;

layers = [
    imageInputLayer(inputSize,'Normalization','none','Name','in')
    convolution2dLayer(7,numFilters,'Stride',2,'Padding','same','Name','conv')
    groupNormalizationLayer('all-channels','Name','gn')
    reluLayer('Name','relu')
    maxPooling2dLayer(3,'Stride',2,'Name','max')
    residualBlockLayer(numFilters,'Name','res1')
    residualBlockLayer(numFilters,'Name','res2')
    residualBlockLayer(2*numFilters,'Stride',2,'IncludeSkipConvolution',true,'Name','res3')
    residualBlockLayer(2*numFilters,'Name','res4')
    residualBlockLayer(4*numFilters,'Stride',2,'IncludeSkipConvolution',true,'Name','res5')
    residualBlockLayer(4*numFilters,'Name','res6')
    globalAveragePooling2dLayer('Name','gap')
    fullyConnectedLayer(numClasses,'Name','fc')
    softmaxLayer('Name','sm')];

dlnet = dlnetwork(layers);

Learnables свойство dlnetwork объект является таблицей, которая содержит настраиваемые параметры сети. Таблица включает параметры вложенных слоев в отдельных строках. Просмотрите настраиваемые параметры слоя "res1".

learnables = dlnet.Learnables;
idx = learnables.Layer == "res1";
learnables(idx,:)
ans=8×3 table
    Layer            Parameter                  Value       
    ______    _______________________    ___________________

    "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/Bias"       {1x1x32    dlarray}
    "res1"    "Network/gn2/Offset"       {1x1x32    dlarray}
    "res1"    "Network/gn2/Scale"        {1x1x32    dlarray}

Для слоя "res1", установитесь коэффициент регуляризации L2 настраиваемого параметра 'Weights' из слоя 'conv1' к 2 использованиям setL2Factor функция.

factor = 2;
dlnet = setL2Factor(dlnet,'res1/Network/conv1/Weights',factor);

Получите обновленный фактор регуляризации L2 использование getL2Factor функция.

factor = getL2Factor(dlnet,'res1/Network/conv1/Weights')
factor = 2

Входные параметры

свернуть все

Введите слой в виде скалярного Layer объект.

Название параметра в виде вектора символов или строкового скаляра.

Фактор регуляризации L2 для параметра в виде неотрицательного скаляра.

Программное обеспечение умножает этот фактор с глобальным фактором регуляризации L2, чтобы определить фактор регуляризации L2 для заданного параметра. Например, если factor 2, затем регуляризация L2 для заданного параметра является дважды глобальным фактором регуляризации L2. Можно задать глобальный фактор регуляризации L2 использование trainingOptions функция.

Пример 2

Путь к параметру во вложенном слое в виде строкового скаляра или вектора символов. Вложенный слой является пользовательским слоем, который самим задает график слоев как настраиваемый параметр.

Если вход к setL2Factor вложенный слой, затем путь к параметру имеет форму "propertyName/layerName/parameterName", где:

  • propertyName имя свойства, содержащего dlnetwork объект

  • layerName имя слоя в dlnetwork объект

  • parameterName имя параметра

Если существует несколько уровней вложенных слоев, то задают каждый уровень с помощью формы "propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName", где propertyName1 и layerName1 соответствуйте слою во входе к setL2Factor функция и последующие части соответствуют более глубоким уровням.

Пример: Для входа слоя к setL2Factor, путь "Network/conv1/Weights" задает "Weights" параметр слоя с именем "conv1" в dlnetwork объект дан layer.Network.

Если вход к setL2Factor dlnetwork возразите и желаемый параметр находится во вложенном слое, затем путь к параметру имеет форму "layerName1/propertyName/layerName/parameterName", где:

  • layerName1 имя слоя во входе dlnetwork объект

  • propertyName свойство слоя, содержащего dlnetwork объект

  • layerName имя слоя в dlnetwork объект

  • parameterName имя параметра

Если существует несколько уровней вложенных слоев, то задают каждый уровень с помощью формы "layerName1/propertyName1/.../layerNameN/propertyNameN/layerName/parameterName", где layerName1 и propertyName1 соответствуйте слою во входе к setL2Factor функция и последующие части соответствуют более глубоким уровням.

Пример: для dlnetwork введите к setL2Factor, путь "res1/Network/conv1/Weights" задает "Weights" параметр слоя с именем "conv1" в dlnetwork объект дан layer.Network, где layer слой с именем "res1" во входной сети dlnet.

Типы данных: char | string

Сеть для пользовательских учебных циклов в виде dlnetwork объект.

Имя слоя в виде строкового скаляра или вектора символов.

Типы данных: char | string

Выходные аргументы

свернуть все

Обновленный слой, возвращенный как Layer.

Обновленная сеть, возвращенная как dlnetwork.

Введенный в R2017b