addPix2PixHDLocalEnhancer

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

Описание

пример

netWithEnhancer = addPix2PixHDLocalEnhancer(net) добавляет локальную сеть усилителя к pix2pixHD сети генератора, net. Дополнительные сведения об архитектуре сети см. в разделе pix2pixHD локальной сети Enhancer.

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

netWithEnhancer = addPix2PixHDLocalEnhancer(net,Name,Value) управляет аспектами создания локальной сети Enhancer с помощью аргументов 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

Добавьте локальную сеть Enhancer к 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.

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

Стиль заполнения, используемый в локальной сети Enhancer, заданный в качестве одного из следующих значений.

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

[314159265][2222222222222222314222215922222652222222222222222]

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

[314159265][5115995133144113314415115995622655662265565115995]

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

[314159265][5626562951595141314139515951562656295159514131413]

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

[314159265][3331444333144433314441115999222655522265552226555]

Метод, используемый для увеличения активации в локальной сети энхансеров, заданный как одно из следующих значений:

  • "transposedConv" - Использовать transposedConv2dLayer (Deep Learning Toolbox) с шагом [2 2]

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

  • "pixelShuffle" - Использование convolution2dLayer (Deep Learning Toolbox) с шагом [1 1], за которым следует 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, Dropout и Curpping Layers (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 локальную сеть Enhancer

addPix2PixHDLocalEnhancer функция выполняет эти операции, чтобы добавить локальную сеть усилителя к pix2pixHD глобальной сети генератора. Улучшенная сеть по умолчанию соответствует архитектуре, предложенной Wang et. 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.

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

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

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

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

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

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

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

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

Остаточный блок
  • A 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

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

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

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

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

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

  • Необязательный слой активации в соответствии с глобальной сетью генератора, net.

2-D convolution layer, tanh layer

Ссылки

[1] Ван, Тин-Чун, Мин-Ю Лю, Цзюнь-Янь Чжу, Эндрю Тао, Ян Каутц и Брайан Катандзаро. «Синтез изображений в высоком разрешении и семантическая манипуляция с условными GAN». В 2018 году IEEE/CVF Conference on Компьютерное Зрение and Pattern Recognition, 8798-8807. Солт-Лейк-Сити, ЮТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.

Введенный в R2021a