exponenta event banner

addPix2PixHDLocalEnhancer

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

Описание

пример

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

Для выполнения этой функции требуется 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(Панель инструментов глубокого обучения). Можно создать сеть генератора 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'Pad с использованием зеркальных значений входных данных, включая значения краев

[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"или дескриптор функции. Дополнительные сведения см. в разделе Определение пользовательской функции инициализации веса (панель инструментов глубокого обучения).

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

  • "relu" - Использовать reluLayer (инструментарий для глубокого обучения)

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

  • "elu" - Использовать eluLayer (инструментарий для глубокого обучения)

  • Объект слоя

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

  • "instance" - Использовать instanceNormalizationLayer (инструментарий для глубокого обучения)

  • "batch" - Использовать batchNormalizationLayer (инструментарий для глубокого обучения)

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

  • Объект слоя

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

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

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

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

свернуть все

Pix2pixHD генераторная сеть с локальным усилителем, возвращенная как dlnetwork(Панель инструментов глубокого обучения).

Подробнее

свернуть все

pix2pixHD Локальная сеть расширения

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

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

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

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

  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 (инструментарий глубокого обучения). По умолчанию остаточные блоки пропускают слой отсева. Включить слой отсева, указав Dropout аргумент «имя-значение» в качестве значения в диапазоне (0, 1].

  • Секунда convolution2dLayer (инструментарий глубокого обучения).

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

  • Один 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 по компьютерному зрению и распознаванию образов, 8798-8807. Солт-Лейк-Сити, УТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.

Представлен в R2021a