Создайте pix2pixHD глобальную генераторную сеть
создает сеть pix2pixHD генератора для входа размера net
= pix2pixHDGlobalGenerator(inputSize
)inputSize
. Для получения дополнительной информации об архитектуре сети смотрите pix2pixHD Generator Network.
Эта функция требует Deep Learning Toolbox™.
изменяет свойства pix2pixHD сети с помощью аргументов имя-значение.net
= pix2pixHDGlobalGenerator(inputSize
,Name,Value
)
Задайте размер входа сети для 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)
inputSize
- Размер входа сетиРазмер входа сети, заданный как 3-элементный вектор положительных целых чисел. inputSize
имеет вид [H
W C], где H
- высота, W - ширина, а C - количество каналов.
Пример: [28 28 3]
задает размер входа 28 на 28 пикселей для трехканального изображения.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'NumFiltersInFirstBlock',32
создает сеть с 32 фильтрами в первом слое свертки'NumDownsamplingBlocks'
- Количество блоков понижающей дискретизации4
(по умолчанию) | положительное целое числоКоличество блоков понижающей дискретизации в модуле сетевого энкодера, заданное в виде положительного целого числа. В общей сложности сеть понижает вход в 2 ^ NumDownsamplingBlocks
. Модуль декодера состоит из того же количества блоков повышающей дискретизации.
'NumFiltersInFirstBlock'
- Количество фильтров в первом слое свертки64
(по умолчанию) | положительное четное целое числоКоличество фильтров в первом слое свертки, заданное как положительное четное целое число.
'NumOutputChannels'
- Количество выходных каналов3
(по умолчанию) | положительное целое числоКоличество выхода каналов, заданное в виде положительного целого числа.
'FilterSizeInFirstAndLastBlocks'
- Размер фильтра в первом и последнем слоях свертки7
(по умолчанию) | положительное нечетное целое число | 2-элементный вектор положительных нечетных целых чиселРазмер фильтра в первом и последнем слоях свертки сети, заданный как положительное нечетное целое или 2-элементный вектор положительных нечетных целых чисел вида [ширина высоты ]. Когда вы задаете размер фильтра как скаляр, фильтр имеет равные высоту и ширину.
'FilterSizeInIntermediateBlocks'
- Размер фильтра в промежуточных слоях3
(по умолчанию) | 2-элементный вектор положительных нечетных целых чисел | положительное нечетное целое числоРазмер фильтра в промежуточных слоях, заданный как положительное нечетное целое или 2-элементный вектор положительных нечетных целых чисел вида [ширина высоты ]. Промежуточные слои свертки являются слоями свертки, исключающими первый и последний слой свертки. Когда вы задаете размер фильтра как скаляр, фильтр имеет одинаковые высоту и ширину. Типичные значения находятся между 3 и 7.
'NumResidualBlocks'
- Количество остаточных блоков9
(по умолчанию) | положительное целое числоКоличество остаточных блоков, заданное как положительное целое число.
'ConvolutionPaddingValue'
- Стиль заполнения"symmetric-exclude-edge"
(по умолчанию) | "symmetric-include-edge"
| "replicate"
| числовой скалярСтиль заполнения, используемый в сети, задается как одно из следующих значений.
PaddingValue | Описание | Пример |
---|---|---|
Числовой скаляр | Панель с заданным числовым значением |
|
'symmetric-include-edge' | Заполните используя зеркальные значения входов, включая значения ребер |
|
'symmetric-exclude-edge' | Заполните используя зеркальные значения входов, исключая значения ребер |
|
'replicate' | Заполните с использованием повторяющихся элементов границы входов |
|
'UpsampleMethod'
- Метод, используемый для повышения активации"transposedConv"
(по умолчанию) | "bilinearResize"
| "pixelShuffle"
Метод, используемый для увеличения активации, заданный как одно из следующих значений:
"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
'ConvolutionWeightsInitializer'
- Массовая инициализация, используемая в слоях"narrow-normal"
(по умолчанию) | "glorot"
| "he"
| функцииИнициализация веса, используемая в слоях свертки, задается как "glorot"
, "he"
, "narrow-normal"
, или указатель на функцию. Для получения дополнительной информации смотрите Задать Пользовательскую Функцию Инициализации Веса (Deep Learning Toolbox).
'ActivationLayer'
- Функция активации"relu"
(по умолчанию) | "leakyRelu"
| "elu"
| объекта слояФункция активации для использования в сети, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите Слои активации (Deep Learning Toolbox).
"relu"
- Использование reluLayer
(Deep Learning Toolbox)
"leakyRelu"
- Использование leakyReluLayer
(Deep Learning Toolbox) с масштабным коэффициентом 0,2
"elu"
- Использование eluLayer
(Deep Learning Toolbox)
Объект слоя
'FinalActivationLayer'
- Функция активации после окончательной свертки"tanh"
(по умолчанию) | "sigmoid"
| "softmax"
| "none"
| объекта слояФункция активации после последнего слоя свертки, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите Выходные слои (Deep Learning Toolbox).
"tanh"
- Использование tanhLayer
(Deep Learning Toolbox)
"sigmoid"
- Использование sigmoidLayer
(Deep Learning Toolbox)
"softmax"
- Использование softmaxLayer
(Deep Learning Toolbox)
"none"
- Не используйте слой окончательной активации
Объект слоя
'NormalizationLayer'
- Нормализация операции"instance"
(по умолчанию) | "none"
| "batch"
| объекта слояОперация нормализации для использования после каждой свертки, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите Normalization, Dropout и Curpping Layers (Deep Learning Toolbox).
"instance"
- Использование instanceNormalizationLayer
(Deep Learning Toolbox)
"batch"
- Использование batchNormalizationLayer
(Deep Learning Toolbox)
"none"
- Не используйте слой нормализации
Объект слоя
'Dropout'
- Вероятность отсева0
(по умолчанию) | число в области значений [0, 1]Вероятность отсева, заданная как число в области значений [0, 1]. Если вы задаете значение 0
, тогда сеть не включает слои отсева. Если вы задаете значение, больше 0
, затем сеть включает в себя dropoutLayer
(Deep Learning Toolbox) в каждом остаточном блоке.
'NamePrefix'
- Префикс ко всем именам слоев"GlobalGenerator_"
(по умолчанию) | строку | вектор символовПрефикс ко всем именам слоев в сети, заданный как строковый или символьный вектор.
Типы данных: char
| string
net
- pix2pixHD сети генератораdlnetwork
объектPix2pixHD генераторную сеть, возвращенную как dlnetwork
(Deep Learning Toolbox) объект.
Сеть генератора pix2pixHD состоит из модуля энкодера, за которым следует модуль декодера. Сеть по умолчанию соответствует архитектуре, предложенной Wang et. al. [1].
Модуль энкодера уменьшает вход в 2 ^ NumDownsamplingBlocks
. Модуль энкодера состоит из начального блока слоев, NumDownsamplingBlocks
блоки понижающей дискретизации и NumResidualBlocks
остаточные блоки. Модуль декодера увеличивает вход в множитель 2 ^ NumDownsamplingBlocks
. Модуль декодера состоит из NumDownsamplingBlocks
блоки повышающей дискретизации и конечный блок.
Таблица описывает блоки слоев, которые состоят из модулей энкодера и декодера.
Тип блока | Слои | Схема блока по умолчанию |
---|---|---|
Начальный блок |
|
|
Блок понижающей дискретизации |
|
|
Остаточный блок |
|
|
Блок повышающей дискретизации |
|
|
Конечный блок |
|
|
Вы можете создать сеть дискриминатора для pix2pixHD с помощью patchGANDiscriminator
функция.
Обучите pix2pixHD сеть GAN с помощью пользовательского цикла обучения.
[1] Ван, Тин-Чун, Мин-Ю Лю, Цзюнь-Янь Чжу, Эндрю Тао, Ян Каутц и Брайан Катандзаро. «Синтез изображений в высоком разрешении и семантическая манипуляция с условными GAN». В 2018 году IEEE/CVF Conference on Компьютерное Зрение and Pattern Recognition, 8798-8807. Солт-Лейк-Сити, ЮТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.
addPix2PixHDLocalEnhancer
| blockedNetwork
| cycleGANGenerator
| encoderDecoderNetwork
| unitGenerator
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.