Транспонированный 2-D слой свертки
Транспонированный 2-D слой свертки преобразует функции.
Этот слой иногда неправильно известен как слой «deconvolution» или «deconv». Этот слой является транспонированием свертки и не выполняет деконволюцию.
Создайте транспонированную свертку 2-D выходов слоя с помощью transposedConv2dLayer
.
FilterSize
- Высота и ширина фильтровВысота и ширина фильтров, заданных как вектор двух положительных целых чисел [h w]
, где h
- высота и w
- ширина. FilterSize
определяет размер локальных областей, с которыми нейроны соединяются во входе.
Если вы задаете FilterSize
используя входной параметр, можно задать FilterSize
в качестве скаляра для использования одинакового значения для обеих размерностей.
Пример:
[5 5] задает фильтры высоты 5 и ширины 5.
NumFilters
- Количество фильтровКоличество фильтров, заданное в виде положительного целого числа. Это количество соответствует количеству нейронов в сверточном слое, которые соединяются с одной и той же областью на входе. Этот параметр определяет количество каналов (функции) в выходе сверточного слоя.
Пример:
96
Stride
- Размер шага для обхода входа[1 1]
(по умолчанию) | вектор из двух положительных целых чиселРазмер шага для прохождения входа вертикально и горизонтально, заданный как вектор [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
- Сокращение размера выходного сигнала[0 0 0 0]
(по умолчанию) | вектор четырех неотрицательных целых чиселВыход выходного размера, заданное как вектор четырех неотрицательных целых чисел [t b l r]
, где t
, b
, l
, r
- количество урожая из верхней части, нижнего, левого и правого полей соответственно.
Чтобы задать размер кадрирования вручную, используйте 'Cropping'
опция transposedConv2dLayer
.
Пример:
[0 1 0 1]
Cropping
- Сокращение размера выходного сигнала[0 0]
(по умолчанию) | вектор из двух неотрицательных целых чиселПримечание
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] (также известного как инициализатор Xavier). Инициализатор Glorot независимо выбирает из равномерного распределения с нулем среднего и отклонением 2/(numIn + numOut)
, где numIn = FilterSize(1)*FilterSize(2)*NumChannels
и numOut = FilterSize(1)*FilterSize(2)*NumFilters
.
'he'
- Инициализируйте веса с помощью инициализатора He [2]. Инициализатор He производит выборки из нормального распределения с нулем среднего и отклонением 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)
-by- FilterSize(2)
-by- NumFilters
-by- NumChannels
массив.
Веса слоев являются настраиваемыми параметрами. Можно задать начальное значение для весов непосредственно с помощью Weights
свойство слоя. При обучении сети, если Weights
свойство слоя непусто, тогда trainNetwork
использует Weights
свойство как начальное значение. Если на Weights
свойство пустое, тогда trainNetwork
использует инициализатор, заданный как WeightsInitializer
свойство слоя.
Типы данных: 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
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'
.
Cropping
свойство TransposedConvolution2DLayer
будет удаленоНе рекомендуемый запуск в R2019a
Cropping
свойство TransposedConvolution2DLayer
будет удалено, используйте CroppingSize
вместо этого. Чтобы обновить код, замените все образцы Cropping
свойство с CroppingSize
.
[1] Глорот, Ксавьер и Йошуа Бенгио. «Понимание сложности обучения нейронных сетей с глубоким Feedforward». В работе тринадцатой Международной конференции по искусственному интеллекту и статистике, 249-356. Сардиния, Италия: AISTATS, 2010.
[2] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. «Delving Deep Into Rectifiers: Overpassing Human-Level Performance on ImageNet Classification». В работе Международной конференции IEEE по компьютерному зрению 2015 года, 1026-1034. Вашингтон, округ Колумбия: IEEE Компьютерное Зрение Society, 2015.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.