patchGANDiscriminator

Создайте сеть дискриминатора PatchGAN

Описание

пример

net = patchGANDiscriminator(inputSize) создает сеть дискриминатора PatchGAN для входа размера inputSize. Дополнительные сведения об архитектуре сети PatchGAN см. в разделе Сеть дискриминатора PatchGAN.

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

пример

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

Можно создать сеть дискриминатора PatchGAN 1 на 1, называемую пиксельной сетью дискриминатора, задав 'NetworkType'аргумент как "pixel". Для получения дополнительной информации об архитектуре сети пиксельных дискриминаторов смотрите Pixel Discriminator Network.

Примеры

свернуть все

Задайте размер входного сигнала сети для цветного изображения размером 256 на 256 пикселей.

inputSize = [256 256 3];

Создайте сеть дискриминатора PatchGAN с заданным размером входного сигнала.

net = patchGANDiscriminator(inputSize)
net = 
  dlnetwork with properties:

         Layers: [13x1 nnet.cnn.layer.Layer]
    Connections: [12x2 table]
     Learnables: [16x3 table]
          State: [6x3 table]
     InputNames: {'input_top'}
    OutputNames: {'conv2d_final'}
    Initialized: 1

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

analyzeNetwork(net)

Задайте размер входного сигнала сети для цветного изображения размером 256 на 256 пикселей.

inputSize = [256 256 3];

Создайте сеть дискриминатора пикселей с заданным размером входа.

net = patchGANDiscriminator(inputSize,"NetworkType","pixel")
net = 
  dlnetwork with properties:

         Layers: [7x1 nnet.cnn.layer.Layer]
    Connections: [6x2 table]
     Learnables: [8x3 table]
          State: [2x3 table]
     InputNames: {'input_top'}
    OutputNames: {'conv2d_final'}
    Initialized: 1

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

analyzeNetwork(net)

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

свернуть все

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

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

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

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

Пример: 'FilterSize',5 создает дискриминатор, слои свертки которого имеют фильтр размером 5 на 5 пикселей

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

  • "patch" - Создайте дискриминатор PatchGAN

  • "pixel" - Создайте пиксельный дискриминатор, который является дискриминатором PatchGAN 1 на 1

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

Количество операций понижающей дискретизации сети, заданное в виде положительного целого числа. Сеть дискриминатора понижает вход в 2 ^ NumDownsamplingBlocks. Этот аргумент игнорируется, когда вы задаете 'NetworkType'как "pixel".

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

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

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

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

[314159265][2222222222222222314222215922222652222222222222222]

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

[314159265][5115995133144113314415115995622655662265565115995]

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

[314159265][5626562951595141314139515951562656295159514131413]

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

[314159265][3331444333144433314441115999222655522265552226555]

Инициализация веса, используемая в слоях свертки, задается как "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" - Не используйте слой нормализации

  • Объект слоя

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

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

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

свернуть все

Сеть дискриминатора PatchGAN, возвращенная как dlnetwork (Deep Learning Toolbox) объект.

Подробнее о

свернуть все

Сеть дискриминатора PatchGAN

Сеть дискриминатора PatchGAN состоит из модуля энкодера, который уменьшает вход в 2 ^ NumDownsamplingBlocks. Сеть по умолчанию соответствует архитектуре, предложенной Zhu et. al. [2].

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

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

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

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

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

Image input layer, 2-D convolution layer, leaky ReLU layer

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

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

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

2-D convolution layer, batch normalization layer, leaky ReLU layer

Конечный блок
  • A convolution2dLayer (Deep Learning Toolbox) с шагом [1 1]

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

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

  • Второй convolution2dLayer (Deep Learning Toolbox) с шагом [1 1] и 1 выходным каналом

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

2-D convolution layer, batch normalization layer, leaky ReLU layer, 2-D convolution layer

Сеть дискриминатора пикселей

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

Таблица описывает блоки слоев, которые состоят из сети.

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

  • A convolution2dLayer (Deep Learning Toolbox) с шагом [1 1]

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

Image input layer, 2-D convolution layer, leaky ReLU layer

Конечный блок
  • A convolution2dLayer (Deep Learning Toolbox) с шагом [1 1]

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

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

  • Второй convolution2dLayer (Deep Learning Toolbox) с шагом [1 1] и 1 выходным каналом

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

2-D convolution layer, batch normalization layer, leaky ReLU layer, 2-D convolution layer

Ссылки

[1] Изола, Филлип, Цзюнь-Янь Чжу, Тинхуэй Чжоу, и Алексей А. Эфрос. «Перевод изображения на изображение с условными состязательными сетями». В 2017 году IEEE Conference on Компьютерное Зрение and Pattern Recognition (CVPR), 5967-76. Гонолулу, HI: IEEE, 2017. https://arxiv.org/abs/1611.07004.

[2] Чжу, Цзюнь-Янь, парк Тэсун и Тунчжоу Ван. CycleGAN и pix2pix в PyTorch. https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.

Введенный в R2021a