pix2pixHDGlobalGenerator

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

Описание

пример

net = pix2pixHDGlobalGenerator(inputSize) создает сеть pix2pixHD генератора для входа размера inputSize. Для получения дополнительной информации об архитектуре сети смотрите pix2pixHD Generator Network.

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

пример

net = pix2pixHDGlobalGenerator(inputSize,Name,Value) изменяет свойства pix2pixHD сети с помощью аргументов имя-значение.

Примеры

свернуть все

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

inputSize = [512 1024 32];

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

net = pix2pixHDGlobalGenerator(inputSize)
net = 
  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

Отображение сети.

analyzeNetwork(net)

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

inputSize = [512 1024 32]; 

Создайте сеть генератора pix2pixHD, которая выполняет нормализацию партии . после каждой свертки.

net = pix2pixHDGlobalGenerator(inputSize,"Normalization","batch")
net = 
  dlnetwork with properties:

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

Отображение сети.

analyzeNetwork(net)

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

свернуть все

Размер входа сети, заданный как 3-элементный вектор положительных целых чисел. inputSize имеет вид [H W C], где H - высота, W - ширина, а C - количество каналов.

Пример: [28 28 3] задает размер входа 28 на 28 пикселей для трехканального изображения.

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

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

Пример: 'NumFiltersInFirstBlock',32 создает сеть с 32 фильтрами в первом слое свертки

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

Количество фильтров в первом слое свертки, заданное как положительное четное целое число.

Количество выхода каналов, заданное в виде положительного целого числа.

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

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

Количество остаточных блоков, заданное как положительное целое число.

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

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)

  • Объект слоя

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

  • "tanh" - Использование tanhLayer (Deep Learning Toolbox)

  • "sigmoid" - Использование sigmoidLayer (Deep Learning Toolbox)

  • "softmax" - Использование softmaxLayer (Deep Learning Toolbox)

  • "none" - Не используйте слой окончательной активации

  • Объект слоя

Операция нормализации для использования после каждой свертки, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите 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 сети генератора

Сеть генератора pix2pixHD состоит из модуля энкодера, за которым следует модуль декодера. Сеть по умолчанию соответствует архитектуре, предложенной Wang et. al. [1].

Модуль энкодера уменьшает вход в 2 ^ NumDownsamplingBlocks. Модуль энкодера состоит из начального блока слоев, NumDownsamplingBlocks блоки понижающей дискретизации и NumResidualBlocks остаточные блоки. Модуль декодера увеличивает вход в множитель 2 ^ NumDownsamplingBlocks. Модуль декодера состоит из NumDownsamplingBlocks блоки повышающей дискретизации и конечный блок.

Таблица описывает блоки слоев, которые состоят из модулей энкодера и декодера.

Тип блокаСлоиСхема блока по умолчанию
Начальный блок
  • Система координат imageInputLayer (Deep Learning Toolbox)

  • 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.

  • Необязательный слой активации, заданный FinalActivationLayer аргумент имя-значение.

2-D convolution layer, tanh layer

Совет

  • Вы можете создать сеть дискриминатора для pix2pixHD с помощью patchGANDiscriminator функция.

  • Обучите pix2pixHD сеть GAN с помощью пользовательского цикла обучения.

Ссылки

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

Введенный в R2021a