Создайте сеть дискриминатора 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.