Транспонированный 2D слой свертки
Транспонированный 2D слой свертки сверхдискретизировал карты функции.
Этот слой иногда неправильно известен как "развертку" или "deconv" слой. Этот слой является транспонированием свертки и не выполняет развертку.
возвращает транспонированный 2D слой свертки и устанавливает layer
= transposedConv2dLayer(filterSize
,numFilters
)filterSize
и numFilters
свойства.
возвращает транспонированный 2D сверточный слой и задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".layer
= transposedConv2dLayer(filterSize
,numFilters
,Name,Value
)
Создайте транспонированный сверточный слой с 96 фильтрами, каждого с высотой и шириной 11. Используйте шаг 4 в горизонтальных и вертикальных направлениях.
layer = transposedConv2dLayer(11,96,'Stride',4);
filterSize
— Высота и ширина фильтровВысота и ширина фильтров в виде вектора из двух положительных целых чисел [h w]
, где h
высота и w
ширина. FilterSize
задает размер локальных областей, с которыми нейроны соединяются во входе.
Если вы устанавливаете FilterSize
с помощью входного параметра затем можно задать FilterSize
как скаляр, чтобы использовать то же значение для обеих размерностей.
Пример:
[5 5]
задает фильтры высоты 5 и ширина 5.
numFilters
— Количество фильтровКоличество фильтров в виде положительного целого числа. Этот номер соответствует количеству нейронов в слое, которые соединяются с той же областью во входе. Этот параметр определяет количество каналов (карты функции) в выходе сверточного слоя.
Пример:
96
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Cropping',1
'Stride'
— Повышающая дискретизация фактора
(значение по умолчанию) | вектор из двух положительных целых чисел | положительное целое числоПовышающая дискретизация фактора входа в виде одного из следующего:
Вектор из двух положительных целых чисел [a b]
, где a
вертикальный шаг и b
горизонтальный шаг.
Положительное целое число соответствование и вертикальному и горизонтальному шагу.
Пример: 'Stride',[2 1]
'Cropping'
— Выведите сокращение размера
(значение по умолчанию) | 'same'
| неотрицательное целое число | вектор из двух неотрицательных целых чиселВыведите сокращение размера в виде одного из следующего:
'same'
– Установите обрезку так, чтобы выходной размер равнялся inputSize .* Stride
, где inputSize
высота и ширина входа слоя. Если вы устанавливаете 'Cropping'
опция к 'same'
, затем программное обеспечение автоматически устанавливает CroppingMode
свойство слоя к 'same'
.
Программное обеспечение обрезает равную сумму от верха и низа и левое и правое, если это возможно. Если вертикальная сумма обрезки имеет нечетное значение, то программное обеспечение обрезает дополнительную строку от нижней части. Если горизонтальная сумма обрезки имеет нечетное значение, то программное обеспечение обрезает дополнительный столбец справа.
Положительное целое число – Обрезка заданный объем данных от всех ребер.
Вектор из неотрицательных целых чисел [a b]
- Обрежьте a
от верха и низа и обрезки b
слева и право.
Векторный [t b l r]
- Обрежьте t
B
L
R
от верхней части, нижней части, оставленной, и право на вход, соответственно.
Если вы устанавливаете 'Cropping'
опция к числовому значению, затем программное обеспечение автоматически устанавливает CroppingMode
свойство слоя к 'manual'
.
Пример:
[1 2]
'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
, и NumChannels
количество входных каналов.
'he'
– Инициализируйте веса Им инициализатор [2]. Он выборки инициализатора от нормального распределения с нулевым средним значением и отклонением 2/numIn
, где numIn = filterSize(1)*filterSize(2)*NumChannels
и 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'
— Веса слоя[]
(значение по умолчанию) | числовой массивВеса слоя для сверточного слоя в виде числового массива.
Веса слоя являются настраиваемыми параметрами. Можно задать начальное значение для весов непосредственно с помощью Weights
свойство слоя. При обучении сети, если Weights
свойство слоя непусто, затем trainNetwork
использует Weights
свойство как начальное значение. Если Weights
свойство пусто, затем trainNetwork
использует инициализатор, заданный WeightsInitializer
свойство слоя.
В учебное время, Weights
filterSize(1)
- filterSize(2)
- numFilters
- NumChannels
массив.
Типы данных: single
| double
'Bias'
— Смещения слоя[]
(значение по умолчанию) | числовой массивСлой смещает для сверточного слоя в виде числового массива.
Смещения слоя являются настраиваемыми параметрами. При обучении сети, если 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
layer
— Транспонированный 2D слой сверткиTransposedConvolution2DLayer
объектТранспонированный 2D слой свертки, возвращенный как TransposedConvolution2DLayer
объект.
Поведение изменяется в R2019a
Начиная в R2019a, программное обеспечение, по умолчанию, инициализирует веса слоя этого слоя с помощью инициализатора Glorot. Это поведение помогает стабилизировать обучение и обычно уменьшает учебное время глубоких сетей.
В предыдущих релизах программное обеспечение, по умолчанию, инициализирует веса слоя путем выборки от нормального распределения с нулевым средним значением и отклонением 0.01. Чтобы воспроизвести это поведение, установите 'WeightsInitializer'
опция слоя к 'narrow-normal'
.
[1] Glorot, Ксавьер и Иосуа Бенхио. "Изучая трудность учебных глубоких нейронных сетей прямого распространения". В Продолжениях тринадцатой международной конференции по вопросам искусственного интеллекта и статистики, стр 249-256. 2010.
[2] Он, Kaiming, Сянюй Чжан, Шаоцин Жэнь и Цзянь Сунь. "Копаясь глубоко в выпрямителях: Превосходная эффективность человеческого уровня на imagenet классификации". В Продолжениях международной конференции IEEE по вопросам компьютерного зрения, стр 1026-1034. 2015.
Указания и ограничения по применению:
Генерация кода не поддерживает асимметричную обрезку входа. Например, задавая векторный [t b l r]
для 'Cropping'
параметр, чтобы обрезать верхнюю часть, нижнюю часть, оставленную, и право на вход, не поддерживается.
averagePooling2dLayer
| maxPooling2dLayer
| SoftmaxLayer
| TransposedConvolution2DLayer
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.