Установите изучают фактор уровня настраиваемого параметра слоя
устанавливается изучить коэффициент уровня параметра с именем layerUpdated
= setLearnRateFactor(layer
,parameterName
,factor
)parameterName
в layer
к factor
.
Для встроенных слоев можно установиться изучить коэффициент уровня непосредственно при помощи соответствующего свойства. Например, для convolution2dLayer
слой, синтаксис layer = setLearnRateFactor(layer,'Weights',factor)
эквивалентно layer.WeightLearnRateFactor = factor
.
устанавливается изучить коэффициент уровня параметра, заданного путем layerUpdated
= setLearnRateFactor(layer
,parameterPath
,factor
)parameterPath
. Используйте этот синтаксис, когда параметр будет в dlnetwork
объект в пользовательском слое.
устанавливается изучить коэффициент уровня параметра с именем dlnetUpdated
= setLearnRateFactor(dlnet
,layerName
,parameterName
,factor
)parameterName
в слое с именем layerName
для заданного dlnetwork
объект.
устанавливается изучить коэффициент уровня параметра specifiedby путь dlnetUpdated
= setLearnRateFactor(dlnet
,parameterPath
,factor
)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
присоединенный к этому примеру как вспомогательный файл. Чтобы получить доступ к этому файлу, откройте этот пример как Live Script.
inputSize = [224 224 64]; numFilters = 64; layer = residualBlockLayer(inputSize,numFilters)
layer = residualBlockLayer with properties: Name: '' Learnable Parameters Network: [1x1 dlnetwork] Show all properties
Просмотрите слои вложенной сети.
layer.Network.Layers
ans = 8x1 Layer array with layers: 1 'in' Image Input 224x224x64 images 2 'conv1' Convolution 64 3x3x64 convolutions with stride [1 1] and padding 'same' 3 'gn1' Group Normalization Group normalization with 64 channels split into 1 groups 4 'relu1' ReLU ReLU 5 'conv2' Convolution 64 3x3x64 convolutions with stride [1 1] and padding 'same' 6 'gn2' Group Normalization Group normalization with 64 channels split into 64 groups 7 'add' Addition Element-wise addition of 2 inputs 8 '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
объект.
Создайте 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
объект.
Создайте 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([56 56 numFilters],numFilters,'Name','res1') residualBlockLayer([56 56 numFilters],numFilters,'Name','res2') residualBlockLayer([56 56 numFilters],2*numFilters,'Stride',2,'IncludeSkipConvolution',true,'Name','res3') residualBlockLayer([28 28 2*numFilters],2*numFilters,'Name','res4') residualBlockLayer([28 28 2*numFilters],4*numFilters,'Stride',2,'IncludeSkipConvolution',true,'Name','res5') residualBlockLayer([14 14 4*numFilters],4*numFilters,'Name','res6') globalAveragePooling2dLayer('Name','gap') fullyConnectedLayer(numClasses,'Name','fc') softmaxLayer('Name','sm')]; lgraph = layerGraph(layers); dlnet = dlnetwork(lgraph);
Просмотрите слои вложенной сети в слое 'res1'
.
dlnet.Layers(6).Network.Layers
ans = 8x1 Layer array with layers: 1 'in' Image Input 56x56x32 images 2 'conv1' Convolution 32 3x3x32 convolutions with stride [1 1] and padding 'same' 3 'gn1' Group Normalization Group normalization with 32 channels split into 1 groups 4 'relu1' ReLU ReLU 5 'conv2' Convolution 32 3x3x32 convolutions with stride [1 1] and padding 'same' 6 'gn2' Group Normalization Group normalization with 32 channels split into 32 groups 7 'add' Addition Element-wise addition of 2 inputs 8 '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
dlnetwork
ОбъектЗагрузите предварительно обученную сеть.
net = squeezenet;
Преобразуйте сеть в график слоев, удалите выходной слой и преобразуйте его в dlnetwork
объект.
lgraph = layerGraph(net);
lgraph = removeLayers(lgraph,'ClassificationLayer_predictions');
dlnet = dlnetwork(lgraph);
Learnables
свойство dlnetwork
объект является таблицей, которая содержит настраиваемые параметры сети. Таблица включает параметры вложенных слоев в отдельных строках. Просмотрите первые несколько строк learnables таблицы.
learnables = dlnet.Learnables; head(learnables)
ans=8×3 table
Layer Parameter Value
__________________ _________ ___________________
"conv1" "Weights" {3x3x3x64 dlarray}
"conv1" "Bias" {1x1x64 dlarray}
"fire2-squeeze1x1" "Weights" {1x1x64x16 dlarray}
"fire2-squeeze1x1" "Bias" {1x1x16 dlarray}
"fire2-expand1x1" "Weights" {1x1x16x64 dlarray}
"fire2-expand1x1" "Bias" {1x1x64 dlarray}
"fire2-expand3x3" "Weights" {3x3x16x64 dlarray}
"fire2-expand3x3" "Bias" {1x1x64 dlarray}
Заморозить настраиваемые параметры сети, цикла по настраиваемым параметрам и установить изучить уровень на 0 использований setLearnRateFactor
функция.
factor = 0; numLearnables = size(learnables,1); for i = 1:numLearnables layerName = learnables.Layer(i); parameterName = learnables.Parameter(i); dlnet = setLearnRateFactor(dlnet,layerName,parameterName,factor); end
Чтобы использовать обновленный изучают факторы уровня, когда обучение, необходимо передать объект dlnetwork функции обновления в пользовательском учебном цикле. Например, используйте команду
[dlnet,velocity] = sgdmupdate(dlnet,gradients,velocity);
layer
— Слой InputLayer
объектВведите слой в виде скалярного Layer
объект.
parameterName
'ParameterName' Название параметра в виде вектора символов или строкового скаляра.
factor
— Фактор скорости обученияФактор скорости обучения для параметра в виде неотрицательного скаляра.
Программное обеспечение умножает этот фактор на глобальную скорость обучения, чтобы определить скорость обучения для заданного параметра. Например, если factor
2, затем скорость обучения для заданного параметра является дважды текущей глобальной скоростью обучения. Программное обеспечение определяет глобальную скорость обучения на основе настроек, заданных с trainingOptions
функция.
Пример 2
parameterPath
— Путь к параметру во вложенном слоеПуть к параметру во вложенном слое в виде строкового скаляра или вектора символов. Вложенный слой является пользовательским слоем, который самим задает график слоев как настраиваемый параметр.
Если вход к setLearnRateFactor
вложенный слой, затем путь к параметру имеет форму "propertyName/layerName/parameterName"
, где:
propertyName
имя свойства, содержащего dlnetwork
объект
layerName
имя слоя в dlnetwork
объект
parameterName
имя параметра
Если существует несколько уровней вложенных слоев, то задают каждый уровень с помощью формы "propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName"
, где propertyName1
и layerName1
соответствуйте слою во входе к setLearnRateFactor
функция и последующие части соответствуют более глубоким уровням.
Пример: Для входа слоя к setLearnRateFactor
, путь "Network/conv1/Weights"
задает "Weights"
параметр слоя с именем "conv1"
в dlnetwork
объект дан layer.Network
.
Если вход к setLearnRateFactor
dlnetwork
возразите и желаемый параметр находится во вложенном слое, затем путь к параметру имеет форму "layerName1/propertyName/layerName/parameterName"
, где:
layerName1
имя слоя во входе dlnetwork
объект
propertyName
свойство слоя, содержащего dlnetwork
объект
layerName
имя слоя в dlnetwork
объект
parameterName
имя параметра
Если существует несколько уровней вложенных слоев, то задают каждый уровень с помощью формы "layerName1/propertyName1/.../layerNameN/propertyNameN/layerName/parameterName"
, где layerName1
и propertyName1
соответствуйте слою во входе к setLearnRateFactor
функция и последующие части соответствуют более глубоким уровням.
Пример: для dlnetwork
введите к setLearnRateFactor
, путь "res1/Network/conv1/Weights"
задает "Weights"
параметр слоя с именем "conv1"
в dlnetwork
объект дан layer.Network
, где layer
слой с именем "res1"
во входной сети dlnet
.
Типы данных: char |
string
dlnet
— Сеть для пользовательских учебных цикловdlnetwork
объектСеть для пользовательских учебных циклов в виде dlnetwork
объект.
layerName
— Имя слояИмя слоя в виде строкового скаляра или вектора символов.
Типы данных: char |
string
layerUpdated
— Слой UpdatedLayer
объектОбновленный слой, возвращенный как Layer
.
dlnetUpdated
— Сеть Updateddlnetwork
объектОбновленная сеть, возвращенная как dlnetwork
.
getL2Factor
| getLearnRateFactor
| setL2Factor
| trainingOptions
| trainNetwork
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.