patchGANDiscriminator

Создайте сеть различителя PatchGAN

Описание

пример

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

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

пример

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

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

Примеры

свернуть все

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

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

Задайте дополнительные разделенные запятой пары 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, чтобы использовать после каждой свертки в виде одного из этих значений. Для получения дополнительной информации и список доступных слоев, смотрите Нормализацию, Уволенного и Слои Обрезки (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. Сеть по умолчанию следует за архитектурой, предложенной Чжу и. al. [2].

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

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

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

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

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

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

Блок Downsampling
  • convolution2dLayer (Deep Learning Toolbox) шагом [2 2], чтобы выполнить субдискретизацию

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

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

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

Итоговый блок
  • 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]. Эта сеть не выполняет субдискретизацию. Сеть по умолчанию следует за архитектурой, предложенной Чжу и. al. [2].

Таблица описывает блоки слоев, которые включают сеть.

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

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

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

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

Итоговый блок
  • 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] Isola, Филип, июнь-Yan Чжу, Тинхой Чжоу и Алексей А. Эфрос. "Перевод от изображения к изображению с Условными Соперничающими Сетями". На 2 017 Конференциях по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), 5967–76. Гонолулу, HI: IEEE, 2017. https://arxiv.org/abs/1611.07004.

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

Введенный в R2021a