transposedConv3dLayer

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

Описание

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

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

layer = transposedConv3dLayer(filterSize,numFilters) возвращает транспонированный 3-D слой свертки и устанавливает FilterSize и NumFilters свойства.

пример

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

Примеры

свернуть все

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

layer = transposedConv3dLayer(11,32,'Stride',[4 4 2])
layer = 
  TransposedConvolution3DLayer with properties:

            Name: ''

   Hyperparameters
      FilterSize: [11 11 11]
     NumChannels: 'auto'
      NumFilters: 32
          Stride: [4 4 2]
    CroppingMode: 'manual'
    CroppingSize: [2x3 double]

   Learnable Parameters
         Weights: []
            Bias: []

  Show all properties

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

свернуть все

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

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

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

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

Пример: 96

Аргументы в виде пар имя-значение

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

Пример: 'Cropping',1

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

свернуть все

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

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

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

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

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

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

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

  • матрица неотрицательных целых чисел [t l f; b r bk] из неотрицательных целых чисел — Обрезка tLFBR, bk от верхней части, оставленной, передняя сторона, нижняя часть, право и задняя часть входа, соответственно.

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

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

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

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

свернуть все

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

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

  • 'he' – Инициализируйте веса с Ним инициализатор [2]. Он выборки инициализатора от нормального распределения с нулевым средним значением и отклонением 2/numIn, где numIn = filterSize(1)*filterSize(2)*filterSize(3)*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

Веса слоя для транспонированного сверточного слоя, заданного как числовой массив.

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

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

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

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

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

В учебное время, Bias 1 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

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

свернуть все

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

Ссылки

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

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

Введенный в R2019a