Транспонированный 2D слой свертки
Транспонированный 2D слой свертки сверхдискретизировал карты функции.
Этот слой иногда неправильно известен как "развертку" или "deconv" слой. Этот слой является транспонированием свертки и не выполняет развертку.
Создайте транспонированную свертку 2D выходной слой с помощью transposedConv2dLayer
.
FilterSize
— Высота и ширина фильтровВысота и ширина фильтров, заданных как вектор двух положительных целых чисел [h w]
, где h
высота и w
ширина. FilterSize
задает размер локальных областей, с которыми нейроны соединяются во входе.
Если вы устанавливаете FilterSize
с помощью входного параметра затем можно задать FilterSize
как скаляр, чтобы использовать то же значение в обеих размерностях.
Пример:
[5 5]
задает фильтры высоты 5 и ширина 5.
NumFilters
— Количество фильтровКоличество фильтров, заданных как положительное целое число. Этот номер соответствует количеству нейронов в сверточном слое, которые соединяются с той же областью во входе. Этот параметр определяет количество каналов (карты функции) в выходе сверточного слоя.
Пример:
96
Stride
— Размер шага для того, чтобы пересечь вход
(значение по умолчанию) | вектор двух положительных целых чиселРазмер шага для того, чтобы пересечь вход вертикально и горизонтально, заданный как векторный [a b]
из двух положительных целых чисел, где a
вертикальный размер шага и b
горизонтальный размер шага. При создании слоя можно задать Stride
как скаляр, чтобы использовать то же значение в обоих размерах шага.
Пример:
[2 3]
задает вертикальный размер шага 2 и горизонтальный размер шага 3.
CroppingMode
— Метод, чтобы определить размер обрезки'manual'
(значение по умолчанию) | 'same'
Метод, чтобы определить размер обрезки, заданный как 'manual'
или то же самое.
Программное обеспечение автоматически устанавливает значение CroppingMode
на основе 'Cropping'
значение вы задаете при создании слоя.
Если вы устанавливаете 'Cropping'
опция к числовому значению, затем программное обеспечение автоматически устанавливает CroppingMode
свойство слоя к 'manual'
.
Если вы устанавливаете 'Cropping'
опция к 'same'
, затем программное обеспечение автоматически устанавливает CroppingMode
свойство слоя к 'same'
и устанавливает обрезка так, чтобы выходной размер равнялся inputSize .* Stride
, где inputSize
высота и ширина входа слоя.
Чтобы задать размер обрезки, используйте 'Cropping'
опция transposedConv2dLayer
.
CroppingSize
— Выведите сокращение размера
(значение по умолчанию) | вектор четырех неотрицательных целых чиселВыведите сокращение размера, заданное как вектор четырех неотрицательных целых чисел [t b l r]
, где t
B
L
R
суммы должны обрезать от верхней части, нижней части, оставленной, и право, соответственно.
Чтобы задать размер обрезки вручную, используйте 'Cropping'
опция transposedConv2dLayer
.
Пример:
[0 1 0 1]
Cropping
— Выведите сокращение размера
(значение по умолчанию) | вектор двух неотрицательных целых чиселCropping
свойство будет удалено в будущем релизе. Используйте CroppingSize
вместо этого. Чтобы задать размер обрезки вручную, используйте 'Cropping'
опция transposedConv2dLayer
.
Выведите сокращение размера, заданное как вектор двух неотрицательных целых чисел [a b]
, где a
соответствует обрезке от верха и низа и b
соответствует обрезке слева и праву.
Чтобы задать размер обрезки вручную, используйте 'Cropping'
опция transposedConv2dLayer
.
Пример:
[0 1]
NumChannels
— Количество каналов для каждого фильтра'auto'
(значение по умолчанию) | целое числоКоличество каналов для каждого фильтра, заданного как 'NumChannels
'и 'auto'
или целое число.
Этот параметр должен быть равен количеству каналов входа к этому сверточному слою. Например, если вход является цветным изображением, то количество каналов для входа должно быть 3. Если количество фильтров для сверточного слоя до текущего слоя равняется 16, то количество каналов для этого слоя должно быть 16.
WeightsInitializer
— Функция, чтобы инициализировать веса'glorot'
(значение по умолчанию) | 'he'
| 'narrow-normal'
| 'zeros'
| 'ones'
| указатель на функциюФункция, чтобы инициализировать веса, заданные как одно из следующего:
'glorot'
– Инициализируйте веса с инициализатором Glorot [1] (также известный как инициализатор Ксавьера). Инициализатор Glorot независимо выборки от равномерного распределения с нулевым средним значением и отклонением 2/(numIn + numOut)
, где numIn = FilterSize(1)*FilterSize(2)*NumChannels
и numOut = FilterSize(1)*FilterSize(2)*NumFilters
.
'he'
– Инициализируйте веса с Ним инициализатор [2]. Он выборки инициализатора от нормального распределения с нулевым средним значением и отклонением 2/numIn
, где numIn = FilterSize(1)*FilterSize(2)*NumChannels
.
'narrow-normal'
– Инициализируйте веса путем независимой выборки от нормального распределения с нулевым средним и стандартным отклонением 0.01.
'zeros'
– Инициализируйте веса с нулями.
'ones'
– Инициализируйте веса с единицами.
Указатель на функцию – Инициализирует веса с пользовательской функцией. Если вы задаете указатель на функцию, то функция должна иметь форму weights = func(sz)
, где sz
размер весов. Для примера смотрите, Задают Пользовательскую Функцию Инициализации Веса.
Слой только инициализирует веса когда Weights
свойство пусто.
Типы данных: char |
string
| function_handle
BiasInitializer
— Функция, чтобы инициализировать смещение'zeros'
(значение по умолчанию) | 'narrow-normal'
| 'ones'
| указатель на функциюФункция, чтобы инициализировать смещение, заданное как одно из следующего:
'zeros'
– Инициализируйте смещение с нулями.
'ones'
– Инициализируйте смещение с единицами.
'narrow-normal'
– Инициализируйте смещение путем независимой выборки от нормального распределения с нулевым средним и стандартным отклонением 0.01.
Указатель на функцию – Инициализирует смещение с пользовательской функцией. Если вы задаете указатель на функцию, то функция должна иметь форму bias = func(sz)
, где sz
размер смещения.
Слой только инициализирует смещение когда Bias
свойство пусто.
Типы данных: char |
string
| function_handle
Weights
— Веса слоя[]
(значение по умолчанию) | числовой массивВеса слоя для сверточного слоя, заданного как FilterSize(1)
- FilterSize(2)
- NumFilters
- NumChannels
массив.
Веса слоя являются learnable параметрами. Можно задать начальное значение для весов непосредственно с помощью Weights
свойство слоя. При обучении сети, если Weights
свойство слоя непусто, затем trainNetwork
использует Weights
свойство как начальное значение. Если Weights
свойство пусто, затем trainNetwork
использует инициализатор, заданный WeightsInitializer
свойство слоя.
Типы данных: single
| double
Bias
— Смещения слоя[]
(значение по умолчанию) | числовой массивСлой смещает для сверточного слоя, заданного как числовой массив.
Смещения слоя являются learnable параметрами. При обучении сети, если Bias
непусто, затем trainNetwork
использует Bias
свойство как начальное значение. Если Bias
пусто, затем trainNetwork
использует инициализатор, заданный BiasInitializer
.
В учебное время, Bias
1 1 NumFilters
массив.
Типы данных: single
| double
WeightLearnRateFactor
— Фактор темпа обучения для весовФактор темпа обучения для весов, заданных как неотрицательный скаляр.
Программное обеспечение умножает этот фактор на глобальный темп обучения, чтобы определить темп обучения для весов в этом слое. Например, если WeightLearnRateFactor
2, затем темп обучения для весов в этом слое является дважды текущим глобальным темпом обучения. Программное обеспечение определяет глобальный темп обучения на основе настроек, заданных с trainingOptions
функция.
Пример 2
BiasLearnRateFactor
— Фактор темпа обучения для смещенийФактор темпа обучения для смещений, заданных как неотрицательный скаляр.
Программное обеспечение умножает этот фактор на глобальный темп обучения, чтобы определить темп обучения для смещений в этом слое. Например, если BiasLearnRateFactor
2, затем темп обучения для смещений в слое является дважды текущим глобальным темпом обучения. Программное обеспечение определяет глобальный темп обучения на основе настроек, заданных с trainingOptions
функция.
Пример 2
WeightL2Factor
— Фактор регуляризации L2 для весовФактор регуляризации L2 для весов, заданных как неотрицательный скаляр.
Программное обеспечение умножает этот фактор на глобальный фактор регуляризации L2, чтобы определить регуляризацию L2 для весов в этом слое. Например, если WeightL2Factor
2, затем регуляризация L2 для весов в этом слое является дважды глобальным фактором регуляризации L2. Можно задать глобальный фактор регуляризации L2 использование trainingOptions
функция.
Пример 2
BiasL2Factor
— Фактор регуляризации L2 для смещенийФактор регуляризации L2 для смещений, заданных как неотрицательный скаляр.
Программное обеспечение умножает этот фактор на глобальный фактор регуляризации L2, чтобы определить регуляризацию L2 для смещений в этом слое. Например, если BiasL2Factor
2, затем регуляризация L2 для смещений в этом слое является дважды глобальным фактором регуляризации L2. Можно задать глобальный фактор регуляризации L2 использование trainingOptions
функция.
Пример 2
Name
— Имя слоя''
(значение по умолчанию) | вектор символов | представляет скаляр в виде строки
Имя слоя, заданное как вектор символов или скаляр строки. Чтобы включать слой в график слоя, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть со слоем и Name
установлен в ''
, затем программное обеспечение автоматически присваивает имя к слою в учебное время.
Типы данных: char |
string
NumInputs
— Количество входных параметровКоличество входных параметров слоя. Этот слой принимает один вход только.
Типы данных: double
InputNames
— Введите имена{'in'}
(значение по умолчанию)Введите имена слоя. Этот слой принимает один вход только.
Типы данных: cell
NumOutputs
— Количество выходных параметровКоличество выходных параметров слоя. Этот слой имеет один выход только.
Типы данных: double
OutputNames
— Выведите имена{'out'}
(значение по умолчанию)Выведите имена слоя. Этот слой имеет один выход только.
Типы данных: cell
Создайте транспонированный сверточный слой с 96 фильтрами, каждого с высотой и шириной 11. Используйте шаг 4 в горизонтальных и вертикальных направлениях.
layer = transposedConv2dLayer(11,96,'Stride',4);
Поведение изменяется в R2019a
Начиная в R2019a, программное обеспечение, по умолчанию, инициализирует веса слоя этого слоя с помощью инициализатора Glorot. Это поведение помогает стабилизировать обучение и обычно уменьшает учебное время глубоких сетей.
В предыдущих релизах программное обеспечение, по умолчанию, инициализирует веса слоя путем выборки от нормального распределения с нулевым средним значением и отклонением 0.01. Чтобы воспроизвести это поведение, установите 'WeightsInitializer'
опция слоя к 'narrow-normal'
.
Не рекомендуемый запуск в R2019a
Cropping
свойство TransposedConvolution2DLayer
будет удален, использовать CroppingSize
вместо этого. Чтобы обновить ваш код, замените все экземпляры Cropping
свойство с CroppingSize
.
[1] Glorot, Ксавьер и Иосуа Бенхио. "Изучая трудность учебных глубоких нейронных сетей feedforward". В Продолжениях тринадцатой международной конференции по вопросам искусственного интеллекта и статистики, стр 249-256. 2010.
[2] Он, Kaiming, Сянюй Чжан, Шаоцин Жэнь и Цзянь Сунь. "Копаясь глубоко в выпрямителях: Превосходная производительность человеческого уровня на imagenet классификации". В Продолжениях международной конференции IEEE по вопросам компьютерного зрения, стр 1026-1034. 2015.
averagePooling2dLayer
| convolution2dLayer
| maxPooling2dLayer
| transposedConv2dLayer
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.