addPix2PixHDLocalEnhancer

Добавьте локальную сеть усилителя в pix2pixHD сеть генератора

Описание

пример

netWithEnhancer = addPix2PixHDLocalEnhancer(net) добавляет локальная сеть усилителя к pix2pixHD сети генератора, net. Для получения дополнительной информации о сетевой архитектуре, см. pix2pixHD Локальную Сеть Усилителя.

Эта функция требует Deep Learning Toolbox™.

netWithEnhancer = addPix2PixHDLocalEnhancer(net,Name,Value) аспекты средств управления локального создания сети усилителя с помощью аргументов значения имени.

Примеры

свернуть все

Задайте сетевой входной размер для данных с 32 каналами размера 512 1024.

inputSize = [512 1024 32];

Создайте pix2pixHD глобальную сеть генератора.

pix2pixHD = pix2pixHDGlobalGenerator(inputSize)
pix2pixHD = 
  dlnetwork with properties:

         Layers: [84x1 nnet.cnn.layer.Layer]
    Connections: [92x2 table]
     Learnables: [110x3 table]
          State: [0x3 table]
     InputNames: {'GlobalGenerator_inputLayer'}
    OutputNames: {'GlobalGenerator_fActivation'}
    Initialized: 1

Добавьте локальную сеть усилителя в pix2pixHD сеть.

pix2pixHDEnhanced = addPix2PixHDLocalEnhancer(pix2pixHD)
pix2pixHDEnhanced = 
  dlnetwork with properties:

         Layers: [113x1 nnet.cnn.layer.Layer]
    Connections: [124x2 table]
     Learnables: [146x3 table]
          State: [0x3 table]
     InputNames: {'LocalEnhancer_inputLayer'  'GlobalGenerator_inputLayer'}
    OutputNames: {'LocalEnhancer_fActivation'}
    Initialized: 1

Отобразите сеть с локальным усилителем.

analyzeNetwork(pix2pixHDEnhanced)

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

свернуть все

Сеть генератора Pix2pixHD в виде dlnetwork Объект (Deep Learning Toolbox). Можно создать pix2pixHD сеть генератора использование pix2pixHDGlobalGenerator функция.

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

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

Пример: 'FilterSizeInFirstAndLastBlocks',[5 7] добавляет локальный усилитель, первые и последние слои свертки которого имеют размер 5 7

Отфильтруйте размер в первых и последних слоях свертки локальной сети усилителя в виде положительного нечетного целочисленного или вектора с 2 элементами из положительных нечетных целых чисел формы [ ширина высоты]. Когда вы задаете размер фильтра как скаляр, фильтр имеет равную высоту и ширину.

Отфильтруйте размер в промежуточных слоях свертки в локальной сети усилителя в виде положительного нечетного целочисленного или вектора с 2 элементами из положительных нечетных целых чисел формы [ ширина высоты]. Промежуточные слои свертки являются слоями свертки, исключая первый и последний слой свертки. Когда вы задаете размер фильтра как скаляр, фильтр имеет идентичную высоту и ширину. Типичные значения между 3 и 7.

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

Стиль дополнения используемого в локальной сети усилителя в виде одного из этих значений.

PaddingValueОписаниеПример
Числовой скалярЗаполните заданным числовым значением

[314159265][2222222222222222314222215922222652222222222222222]

'symmetric-include-edge'Заполните зеркально отраженные значения использования входа, включая значения ребра

[314159265][5115995133144113314415115995622655662265565115995]

'symmetric-exclude-edge'Заполните зеркально отраженные значения использования входа, исключая значения ребра

[314159265][5626562951595141314139515951562656295159514131413]

'replicate'Заполните использование повторенные элементы границы входа

[314159265][3331444333144433314441115999222655522265552226555]

Метод раньше сверхдискретизировал активации в локальной сети усилителя в виде одного из этих значений:

  • "transposedConv" — Используйте a transposedConv2dLayer (Deep Learning Toolbox) шагом [2 2]

  • "bilinearResize" — Используйте convolution2dLayer (Deep Learning Toolbox) шагом [1 1] сопровождаемый resize2dLayer со шкалой [2 2]

  • "pixelShuffle" — Используйте convolution2dLayer (Deep Learning Toolbox) шагом [1 1] сопровождаемый a depthToSpace2dLayer с размером блока [2 2]

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

Инициализация веса используется в слоях свертки локальной сети усилителя в виде "glorot", "he", "narrow-normal", или указатель на функцию. Для получения дополнительной информации смотрите, Задают Пользовательскую Функцию Инициализации Веса (Deep Learning Toolbox).

Функция активации, чтобы использовать в локальной сети усилителя в виде одного из этих значений. Для получения дополнительной информации и список доступных слоев, смотрите Слои Активации (Deep Learning Toolbox).

  • "relu" — Используйте reluLayer (Deep Learning Toolbox)

  • "leakyRelu" — Используйте leakyReluLayer (Deep Learning Toolbox) с масштабным коэффициентом 0,2

  • "elu" — Используйте eluLayer (Deep Learning Toolbox)

  • Расположенный на слое объект

Операция Normalization, чтобы использовать после каждой свертки в локальной сети усилителя в виде одного из этих значений. Для получения дополнительной информации и список доступных слоев, смотрите Нормализацию, Уволенного и Слои Обрезки (Deep Learning Toolbox).

  • "instance" — Используйте instanceNormalizationLayer (Deep Learning Toolbox)

  • "batch" — Используйте batchNormalizationLayer (Deep Learning Toolbox)

  • "none" — Не используйте слой нормализации

  • Расположенный на слое объект

Вероятность уволенного в локальной сети усилителя в виде номера в области значений [0, 1]. Если вы задаете значение 0, затем сеть не включает слои уволенного. Если вы задаете значение, больше, чем 0, затем сеть включает dropoutLayer (Deep Learning Toolbox) в каждом остаточном блоке.

Префикс ко всему слою называет в локальной сети усилителя в виде строки или вектора символов.

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

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

свернуть все

Сеть генератора Pix2pixHD с локальным усилителем, возвращенным как dlnetwork Объект (Deep Learning Toolbox).

Больше о

свернуть все

pix2pixHD Локальная Сеть Усилителя

addPix2PixHDLocalEnhancer функция выполняет эти операции, чтобы добавить локальную сеть усилителя в pix2pixHD глобальную сеть генератора. Значение по умолчанию улучшенная сеть следует за архитектурой, предложенной Ваном и. al. Ссылки.

  1. Локальная сеть усилителя имеет начальный блок слоев, который принимает изображения размера [2*H 2*W C], где H является высотой, W является шириной, и C является количеством каналов входа к глобальной сети генератора, net. Когда net имеет входные слои повторного изображения, входной размер изображения локальной сети усилителя является дважды входным размером с максимальным разрешением.

  2. После начального блока локальная сеть усилителя имеет один блок субдискретизации, который прореживает данные на коэффициент два. Поэтому выход после субдискретизации имеет размер [H W 2*C].

  3. addPix2PixHDLocalEnhancer функционируйте обрезает итоговый блок из глобальной сети генератора. Функция затем добавляет выход последнего блока повышающей дискретизации в глобальной сети генератора к выходу прореженных данных из сети усилителя использование additionLayer (Deep Learning Toolbox).

  4. Выход сложения затем проходит через NumResidualBlocks остаточные блоки из локального усилителя.

  5. Остаточные блоки сопровождаются одним блоком повышающей дискретизации, который сверхдискретизировал данные к размеру [2*H 2*W C].

  6. addPix2PixHDLocalEnhancer функция добавляет итоговый блок в расширенную сеть. Слою свертки задали свойства аргументы addPix2PixHDLocalEnhancer. Если глобальная сеть генератора имеет итоговый слой активации, то функция добавляет тот же тип слоя активации к расширенной сети.

Таблица описывает блоки слоев, которые включают локальную сеть усилителя.

Тип блокаСлоиСхема блока по умолчанию
Начальный блок
  • imageInputLayer (Deep Learning Toolbox), который принимает изображения дважды размера как pix2pixHD глобальная сеть генератора, net.

  • convolution2dLayer (Deep Learning Toolbox) шагом [1 1] и размер фильтра FilterSizeInFirstAndLastBlocks

  • Дополнительный слой нормализации, заданный NormalizationLayer аргумент значения имени.

  • Слой активации задан ActivationLayer аргумент значения имени.

Image input layer, 2-D convolution layer, instance normalization layer, ReLU layer

Блок Downsampling
  • convolution2dLayer (Deep Learning Toolbox) шагом [2 2], чтобы выполнить субдискретизацию. Слой свертки имеет размер фильтра FilterSizeInIntermediateBlocks.

  • Дополнительный слой нормализации, заданный NormalizationLayer аргумент значения имени.

  • Слой активации задан ActivationLayer аргумент значения имени.

2-D convolution layer, instance normalization layer, ReLU layer

Остаточный блок
  • convolution2dLayer (Deep Learning Toolbox) шагом [1 1] и размер фильтра FilterSizeInIntermediateBlocks.

  • Дополнительный слой нормализации, заданный NormalizationLayer аргумент значения имени.

  • Слой активации задан ActivationLayer аргумент значения имени.

  • Дополнительный dropoutLayer (Deep Learning Toolbox). По умолчанию остаточные блоки не используют слой уволенного. Включайте слой уволенного путем определения Dropout аргумент значения имени как значение в области значений (0, 1].

  • Второй convolution2dLayer (Deep Learning Toolbox).

  • Дополнительный второй слой нормализации.

  • additionLayer (Deep Learning Toolbox), который обеспечивает связь пропуска между каждым блоком.

2-D convolution layer, instance normalization layer, ReLU layer, 2-D convolution layer, instance normalization layer, addition layer

Блок Upsampling
  • Слой повышающей дискретизации, который сверхдискретизировал на коэффициент 2 согласно UpsampleMethod аргумент значения имени. Слой свертки имеет размер фильтра FilterSizeInIntermediateBlocks.

  • Дополнительный слой нормализации, заданный NormalizationLayer аргумент значения имени.

  • Слой активации задан ActivationLayer аргумент значения имени.

Transposed 2-D convolution layer, instance normalization layer, ReLU layer

Итоговый блок
  • convolution2dLayer (Deep Learning Toolbox) шагом [1 1] и размер фильтра FilterSizeInFirstAndLastBlocks.

  • Дополнительный слой активации согласно глобальной сети генератора, net.

2-D convolution layer, tanh layer

Ссылки

[1] Ван, Звон-Chun, Мин-Юй Лю, июнь-Yan Чжу, Эндрю Тао, Ян Коц и Брайан Кэйтанзаро. "Синтез изображений с высоким разрешением и Семантическая Манипуляция с Условным GANs". На 2018 Конференциях IEEE/CVF по Компьютерному зрению и Распознаванию образов, 8798–8807. Солт-Лейк-Сити, UT, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.

Введенный в R2021a