Создайте сеть дискриминатора PatchGAN
создает сеть дискриминатора PatchGAN для входа размера net
= patchGANDiscriminator(inputSize
)inputSize
. Дополнительные сведения об архитектуре сети PatchGAN см. в разделе Сеть дискриминатора PatchGAN.
Эта функция требует Deep Learning Toolbox™.
управляет свойствами сети PatchGAN с помощью аргументов имя-значение.net
= patchGANDiscriminator(inputSize
,Name,Value
)
Можно создать сеть дискриминатора 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)
inputSize
- Размер входа сетиРазмер входа сети, заданный как 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 пикселей'NetworkType'
- Тип сети дискриминаторов"patch"
(по умолчанию) | "pixel"
Тип сети дискриминатора, заданный в качестве одного из следующих значений.
"patch"
- Создайте дискриминатор PatchGAN
"pixel"
- Создайте пиксельный дискриминатор, который является дискриминатором PatchGAN 1 на 1
Типы данных: char
| string
'NumDownsamplingBlocks'
- Количество блоков понижающей дискретизации3
(по умолчанию) | положительное целое числоКоличество операций понижающей дискретизации сети, заданное в виде положительного целого числа. Сеть дискриминатора понижает вход в 2 ^ NumDownsamplingBlocks
. Этот аргумент игнорируется, когда вы задаете 'NetworkType
'как "pixel"
.
'NumFiltersInFirstBlock'
- Количество выходных каналов в первом блоке дискриминатора64
(по умолчанию) | положительное целое числоКоличество фильтров в первом блоке дискриминатора, заданное как положительное целое число.
'FilterSize'
- Размер фильтра сверточных слоев4
(по умолчанию) | положительное целое число | 2-элементный вектор положительных целых чиселРазмер фильтра слоев свертки, заданный как положительное целое или 2-элементный вектор положительных целых чисел вида [ширина высоты
]. Когда вы задаете размер фильтра как скаляр, фильтр имеет равные высоту и ширину. Типичные фильтры имеют высоту и ширину от 1 до 4. Этот аргумент имеет эффект только, когда вы задаете 'NetworkType'как
"patch"
.
'ConvolutionPaddingValue'
- Стиль заполнения0
(по умолчанию) | числовой скалярный | "replicate"
| "symmetric-include-edge"
| "symmetric-exclude-edge"
Стиль заполнения, используемый в сети, задается как одно из следующих значений.
PaddingValue | Описание | Пример |
---|---|---|
Числовой скаляр | Панель с заданным числовым значением |
|
'symmetric-include-edge' | Заполните используя зеркальные значения входов, включая значения ребер |
|
'symmetric-exclude-edge' | Заполните используя зеркальные значения входов, исключая значения ребер |
|
'replicate' | Заполните с использованием повторяющихся элементов границы входов |
|
'ConvolutionWeightsInitializer'
- Массовая инициализация, используемая в слоях"glorot"
(по умолчанию) | "he"
| "narrow-normal"
| функцииИнициализация веса, используемая в слоях свертки, задается как "glorot"
, "he"
, "narrow-normal"
, или указатель на функцию. Для получения дополнительной информации смотрите Задать Пользовательскую Функцию Инициализации Веса (Deep Learning Toolbox).
'ActivationLayer'
- Функция активации"leakyRelu"
(по умолчанию) | "relu"
| "elu"
| объекта слояФункция активации для использования в сети, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите Слои активации (Deep Learning Toolbox).
"relu"
- Использование reluLayer
(Deep Learning Toolbox)
"leakyRelu"
- Использование leakyReluLayer
(Deep Learning Toolbox) с масштабным коэффициентом 0,2
"elu"
- Использование eluLayer
(Deep Learning Toolbox)
Объект слоя
'FinalActivationLayer'
- Функция активации после окончательной свертки"none"
(по умолчанию) | "sigmoid"
| "softmax"
| "tanh"
| объекта слояФункция активации после последнего слоя свертки, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите Выходные слои (Deep Learning Toolbox).
"tanh"
- Использование tanhLayer
(Deep Learning Toolbox)
"sigmoid"
- Использование sigmoidLayer
(Deep Learning Toolbox)
"softmax"
- Использование softmaxLayer
(Deep Learning Toolbox)
"none"
- Не используйте слой окончательной активации
Объект слоя
'NormalizationLayer'
- Нормализация операции"batch"
(по умолчанию) | "none"
| "instance"
| объекта слояОперация нормализации для использования после каждой свертки, заданная в качестве одного из следующих значений. Для получения дополнительной информации и списка доступных слоев смотрите Normalization, Dropout и Curpping Layers (Deep Learning Toolbox).
"instance"
- Использование instanceNormalizationLayer
(Deep Learning Toolbox)
"batch"
- Использование batchNormalizationLayer
(Deep Learning Toolbox)
"none"
- Не используйте слой нормализации
Объект слоя
'NamePrefix'
- Префикс ко всем именам слоев""
(по умолчанию) | строку | вектор символовПрефикс ко всем именам слоев в сети, заданный как строковый или символьный вектор.
Типы данных: char
| string
net
- сеть дискриминатора PatchGANdlnetwork
объектСеть дискриминатора PatchGAN, возвращенная как dlnetwork
(Deep Learning Toolbox) объект.
Сеть дискриминатора PatchGAN состоит из модуля энкодера, который уменьшает вход в 2 ^ NumDownsamplingBlocks
. Сеть по умолчанию соответствует архитектуре, предложенной Zhu et. al. [2].
Модуль энкодера состоит из начального блока слоев, который выполняет одну операцию понижающей дискретизации, NumDownsamplingBlocks
-1 блоки понижающей дискретизации и конечный блок.
Таблица описывает блоки слоев, которые состоят из модуля энкодера.
Тип блока | Слои | Схема блока по умолчанию |
---|---|---|
Начальный блок |
|
|
Блок понижающей дискретизации |
|
|
Конечный блок |
|
|
Сеть дискриминатора пикселей состоит из начального блока и последнего блока, которые возвращают выход размера [H W C]. Эта сеть не выполняет понижающую дискретизацию. Сеть по умолчанию соответствует архитектуре, предложенной Zhu et. al. [2].
Таблица описывает блоки слоев, которые состоят из сети.
Тип блока | Слои | Схема блока по умолчанию |
---|---|---|
Начальный блок |
|
|
Конечный блок |
|
|
[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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.