getL2Factor

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

Описание

пример

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

Задайте пользовательский слой PReLU. Чтобы создать этот слой, сохраните файл preluLayer.m в текущей папке.

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

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    batchNormalizationLayer
    preluLayer(20,'prelu')
    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]

  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 объект.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Введенный в R2017b