pix2pixHDGlobalGenerator

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

Описание

пример

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

Эта функция требует 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 пикселей для изображения с 3 каналами.

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

Задайте дополнительные разделенные запятой пары 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" — Используйте 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)

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

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

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

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

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

  • "none" — Не используйте итоговый слой активации

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

Операция 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

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

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

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

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

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

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

2-D convolution layer, tanh layer

Советы

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

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

Ссылки

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

Введенный в R2021a