exponenta event banner

patchGANDiscriminator

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

Описание

пример

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

Для выполнения этой функции требуется Toolbox™ глубокого обучения.

пример

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

Можно создать сеть дискриминаторов 1 к 1 PatchGAN, называемую сетью пиксельных дискриминаторов, указав '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] задает размер ввода для 3-канального изображения 28 на 28 пикселей.

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

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

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

Тип дискриминаторной сети, указанный как одно из этих значений.

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

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

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

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

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

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

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

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

[314159265]→[2222222222222222314222215922222652222222222222222]

'symmetric-include-edge'Pad с использованием зеркальных значений входных данных, включая значения краев

[314159265]→[5115995133144113314415115995622655662265565115995]

'symmetric-exclude-edge'Прокладка с использованием зеркальных значений входных данных, за исключением краевых значений

[314159265]→[5626562951595141314139515951562656295159514131413]

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

[314159265]→[3331444333144433314441115999222655522265552226555]

Инициализация веса, используемая в слоях свертки, указанная как "glorot", "he", "narrow-normal"или дескриптор функции. Дополнительные сведения см. в разделе Определение пользовательской функции инициализации веса (панель инструментов глубокого обучения).

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

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

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

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

  • Объект слоя

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

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

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

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

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

  • Объект слоя

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

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

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

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

  • Объект слоя

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

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

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

свернуть все

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

Подробнее

свернуть все

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

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

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

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

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

  • 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. al. [2].

В таблице описаны блоки уровней, составляющих сеть.

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

  • 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 по компьютерному зрению и распознаванию образов (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