exponenta event banner

pix2pixHDGlobalGenerator

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

Описание

пример

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

Для выполнения этой функции требуется 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] задает размер ввода для 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'Pad с использованием зеркальных значений входных данных, включая значения краев

[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"или дескриптор функции. Дополнительные сведения см. в разделе Определение пользовательской функции инициализации веса (панель инструментов глубокого обучения).

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

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

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

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

  • Объект слоя

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

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

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

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

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

  • Объект слоя

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

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

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

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

  • Объект слоя

Вероятность отсева, указанная как число в диапазоне [0, 1]. Если указано значение 0, то сеть не включает уровни отсева. Если указано значение больше, чем 0, то сеть включает в себя dropoutLayer (Deep Learning Toolbox) в каждом остаточном блоке.

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

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

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

свернуть все

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

Подробнее

свернуть все

pix2pixHD Сеть генератора

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

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

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

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

  • 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 (инструментарий глубокого обучения). По умолчанию остаточные блоки пропускают слой отсева. Включить слой отсева, указав Dropout аргумент «имя-значение» в качестве значения в диапазоне (0, 1].

  • Секунда convolution2dLayer (инструментарий глубокого обучения).

  • Дополнительный второй уровень нормализации.

  • Один 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 по компьютерному зрению и распознаванию образов, 8798-8807. Солт-Лейк-Сити, УТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.

Представлен в R2021a