exponenta event banner

transposedConv2dLayer

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

Описание

Транспонированный слой свертки 2-D увеличивает выборку карт элементов.

Этот слой иногда неверно известен как «деконволюционный» или «деконв» слой. Этот слой является транспонированием свертки и не выполняет деконволюцию.

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

пример

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

Примеры

свернуть все

Создайте транспонированный сверточный слой с 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 должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как 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] - Урожай t, b, l, r сверху, снизу, слева и справа от входа соответственно.

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

Пример: [1 2]

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

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

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

свернуть все

Функция для инициализации весов, указанных как одно из следующих:

  • 'glorot' - Инициализируйте веса с помощью инициализатора Glorot [1] (также известного как инициализатор Xavier). Инициализатор Glorot независимо отсчитывает из однородного распределения с нулевым средним и дисперсией 2/(numIn + numOut), где numIn = filterSize(1)*filterSize(2)*NumChannels, numOut = filterSize(1)*filterSize(2)*numFilters, и NumChannels - количество входных каналов.

  • 'he' - Инициализируйте веса с помощью инициализатора He [2]. Выборка инициализатора He из нормального распределения с нулевым средним и дисперсией 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-by-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

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

свернуть все

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

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

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

В R2019a изменилось поведение

Ссылки

[1] Глорот, Ксавье и Йошуа Бенгио. «Понимание сложности обучения глубоким нейронным сетям». Материалы тринадцатой Международной конференции по искусственному интеллекту и статистике, 249-356. Сардиния, Италия: AISTATS, 2010.

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

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

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.
Представлен в R2017b