transposedConv2dLayer

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

Описание

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

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

layer = transposedConv2dLayer(filterSize,numFilters) возвращает транспонированный 2D слой свертки и устанавливает filterSize и numFilters свойства.

пример

layer = transposedConv2dLayer(filterSize,numFilters,Name,Value) возвращает транспонированный 2D сверточный слой и задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".

Примеры

свернуть все

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

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

Входные параметры

свернуть все

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

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

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

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

Пример: 96

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Cropping',1
Транспонированная свертка

свернуть все

Повышающая дискретизация фактора входа в виде одного из следующего:

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

  • Положительное целое число соответствование и вертикальному и горизонтальному шагу.

Пример: 'Stride',[2 1]

Выведите сокращение размера в виде одного из следующего:

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

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

  • Положительное целое число – Обрезка заданный объем данных от всех ребер.

  • Вектор из неотрицательных целых чисел [a b] - Обрежьте a от верха и низа и обрезки b слева и право.

  • Векторный [t b l r] - Обрежьте tBLR от верхней части, нижней части, оставленной, и право на вход, соответственно.

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

Пример: [1 2]

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

В учебное время, Weights filterSize(1)- filterSize(2)- numFilters- NumChannels массив.

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

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

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

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

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

Скорость обучения и регуляризация

свернуть все

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Слой

свернуть все

Имя слоя в виде вектора символов или строкового скаляра. Для Layer вход массивов, trainNetwork, assembleNetwork, layerGraph, и dlnetwork функции автоматически присваивают имена к слоям с Name установите на ''.

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

Выходные аргументы

свернуть все

Транспонированный 2D слой свертки, возвращенный как TransposedConvolution2DLayer объект.

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

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

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

Ссылки

[1] Glorot, Ксавьер и Иосуа Бенхио. "Изучая Трудность Учебных Глубоких Нейронных сетей Прямого распространения". В Продолжениях Тринадцатой Международной конференции по вопросам Искусственного интеллекта и Статистики, 249–356. Сардиния, Италия: AISTATS, 2010.

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

Расширенные возможности

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Введенный в R2017b