exponenta event banner

getLearnRateFactor

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

Описание

пример

factor = getLearnRateFactor(layer,parameterName) возвращает коэффициент скорости обучения обучаемого параметра с именем parameterName в layer.

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

Установка коэффициента скорости обучения для 'Alpha' обучаемый параметр preluLayer на 2.

layers(4) = setLearnRateFactor(layers(4),'Alpha',2);

Просмотр обновленного коэффициента скорости обучения.

factor = getLearnRateFactor(layers(4),'Alpha')
factor = 2

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

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

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

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

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

Получите обновленный коэффициент скорости обучения с помощью getLearnRateFactor функция.

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

Установка и получение коэффициента скорости обучения обучаемого параметра 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);

Установка коэффициента скорости обучения для 'Weights' распознаваемый параметр слоя свертки на 2 с помощью setLearnRateFactor функция.

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

Получите обновленный коэффициент скорости обучения с помощью getLearnRateFactor функция.

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

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

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

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);

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

dlnet.Layers(6).Network.Layers
ans = 
  7x1 Layer array with layers:

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

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

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

Получите обновленный коэффициент скорости обучения с помощью getLearnRateFactor функция.

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

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

свернуть все

Входной слой, заданный как скаляр Layer объект.

Имя параметра, определяемое как вектор символов или строковый скаляр.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Имя слоя, указанное как строковый скаляр или символьный вектор.

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

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

свернуть все

Коэффициент скорости обучения для параметра, возвращаемый как неотрицательный скаляр.

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

Представлен в R2017b