TransposedConvolution2DLayer

Транспонированный 2D слой свертки

Описание

Транспонированный 2D слой свертки сверхдискретизировал карты функции.

Этот слой иногда неправильно известен как "развертку" или "deconv" слой. Этот слой является транспонированием свертки и не выполняет развертку.

Создание

Создайте транспонированную свертку 2D выходной слой с помощью transposedConv2dLayer.

Свойства

развернуть все

Транспонированная свертка

Высота и ширина фильтров в виде вектора двух положительных целых чисел [h w], где h высота и w ширина. FilterSize задает размер локальных областей, с которыми нейроны соединяются во входе.

Если вы устанавливаете FilterSize с помощью входного параметра затем можно задать FilterSize как скаляр, чтобы использовать то же значение в обеих размерностях.

Пример: [5 5] задает фильтры высоты 5 и ширина 5.

Количество фильтров в виде положительного целого числа. Этот номер соответствует количеству нейронов в сверточном слое, которые соединяются с той же областью во входе. Этот параметр определяет количество каналов (карты функции) в выходе сверточного слоя.

Пример: 96

Размер шага для того, чтобы пересечь вход вертикально и горизонтально в виде векторного [a b] из двух положительных целых чисел, где a вертикальный размер шага и b горизонтальный размер шага. При создании слоя можно задать Stride как скаляр, чтобы использовать то же значение в обоих размерах шага.

Пример: [2 3] задает вертикальный размер шага 2 и горизонтальный размер шага 3.

Метод, чтобы определить размер обрезки в виде 'manual' или то же самое.

Программное обеспечение автоматически устанавливает значение CroppingMode на основе 'Cropping' значение вы задаете при создании слоя.

  • Если вы устанавливаете 'Cropping' опция к числовому значению, затем программное обеспечение автоматически устанавливает CroppingMode свойство слоя к 'manual'.

  • Если вы устанавливаете 'Cropping' опция к 'same', затем программное обеспечение автоматически устанавливает CroppingMode свойство слоя к 'same' и устанавливает обрезка так, чтобы выходной размер равнялся inputSize .* Stride, где inputSize высота и ширина входа слоя.

Чтобы задать размер обрезки, используйте 'Cropping' опция transposedConv2dLayer.

Выведите сокращение размера в виде вектора четырех неотрицательных целых чисел [t b l r], где tBLR суммы должны обрезать от верхней части, нижней части, оставленной, и право, соответственно.

Чтобы задать размер обрезки вручную, используйте 'Cropping' опция transposedConv2dLayer.

Пример: [0 1 0 1]

Примечание

Cropping свойство будет удалено в будущем релизе. Используйте CroppingSize вместо этого. Чтобы задать размер обрезки вручную, используйте 'Cropping' опция transposedConv2dLayer.

Выведите сокращение размера в виде вектора двух неотрицательных целых чисел [a b], где a соответствует обрезке от верха и низа и b соответствует обрезке слева и праву.

Чтобы задать размер обрезки вручную, используйте 'Cropping' опция transposedConv2dLayer.

Пример: [0 1]

Количество каналов для каждого фильтра в виде 'NumChannels'auto' или целое число.

Этот параметр должен быть равен количеству каналов входа к этому сверточному слою. Например, если вход является цветным изображением, то количество каналов для входа должно быть 3. Если количество фильтров для сверточного слоя до текущего слоя равняется 16, то количество каналов для этого слоя должно быть 16.

Параметры и инициализация

Функция, чтобы инициализировать веса в виде одного из следующего:

  • '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

Функция, чтобы инициализировать смещение в виде одного из следующего:

  • 'zeros' – Инициализируйте смещение нулями.

  • 'ones' – Инициализируйте смещение единицами.

  • 'narrow-normal' – Инициализируйте смещение путем независимой выборки от нормального распределения с нулевым средним и стандартным отклонением 0.01.

  • Указатель на функцию – Инициализирует смещение пользовательской функцией. Если вы задаете указатель на функцию, то функция должна иметь форму bias = func(sz), где sz размер смещения.

Слой только инициализирует смещение когда Bias свойство пусто.

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

Веса слоя для сверточного слоя в виде FilterSize(1)- FilterSize(2)- NumFilters- NumChannels массив.

Веса слоя являются настраиваемыми параметрами. Можно задать начальное значение для весов непосредственно с помощью Weights свойство слоя. При обучении сети, если Weights свойство слоя непусто, затем trainNetwork использует Weights свойство как начальное значение. Если Weights свойство пусто, затем trainNetwork использует инициализатор, заданный WeightsInitializer свойство слоя.

Типы данных: single | double

Слой смещает для сверточного слоя в виде числового массива.

Смещения слоя являются настраиваемыми параметрами. При обучении сети, если Bias непусто, затем trainNetwork использует Bias свойство как начальное значение. Если Bias пусто, затем trainNetwork использует инициализатор, заданный BiasInitializer.

В учебное время, Bias 1 1 NumFilters массив.

Типы данных: single | double

Изучите уровень и регуляризацию

Фактор скорости обучения для весов в виде неотрицательного скаляра.

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

Пример 2

Фактор скорости обучения для смещений в виде неотрицательного скаляра.

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

Пример 2

Фактор регуляризации L2 для весов в виде неотрицательного скаляра.

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

Пример 2

Фактор регуляризации L2 для смещений в виде неотрицательного скаляра.

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

Пример 2

Слой

Имя слоя в виде вектора символов или строкового скаляра. Чтобы включать слой в график слоев, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть со слоем и Name установлен в '', затем программное обеспечение автоматически присваивает имя к слою в учебное время.

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

Количество входных параметров слоя. Этот слой принимает один вход только.

Типы данных: double

Введите имена слоя. Этот слой принимает один вход только.

Типы данных: cell

Количество выходных параметров слоя. Этот слой имеет один выход только.

Типы данных: double

Выведите имена слоя. Этот слой имеет один выход только.

Типы данных: cell

Примеры

свернуть все

Создайте транспонированный сверточный слой с 96 фильтрами, каждого с высотой и шириной 11. Используйте шаг 4 в горизонтальных и вертикальных направлениях.

layer = transposedConv2dLayer(11,96,'Stride',4);

Вопросы совместимости

развернуть все

Поведение изменяется в R2019a

Не рекомендуемый запуск в R2019a

Ссылки

[1] Glorot, Ксавьер и Иосуа Бенхио. "Изучая трудность учебных глубоких нейронных сетей feedforward". В Продолжениях тринадцатой международной конференции по вопросам искусственного интеллекта и статистики, стр 249-256. 2010.

[2] Он, Kaiming, Сянюй Чжан, Шаоцин Жэнь и Цзянь Сунь. "Копаясь глубоко в выпрямителях: Превосходная производительность человеческого уровня на imagenet классификации". В Продолжениях международной конференции IEEE по вопросам компьютерного зрения, стр 1026-1034. 2015.

Введенный в R2017b