Добавьте локальную сеть энхансера к pix2pixHD сети генератора
добавляет локальную сеть усилителя к pix2pixHD сети генератора, netWithEnhancer
= addPix2PixHDLocalEnhancer(net
)net
. Дополнительные сведения об архитектуре сети см. в разделе pix2pixHD локальной сети Enhancer.
Эта функция требует Deep Learning Toolbox™.
управляет аспектами создания локальной сети Enhancer с помощью аргументов name-value.netWithEnhancer
= addPix2PixHDLocalEnhancer(net
,Name,Value
)
Задайте размер входа сети для 32-канальных данных размера 512 1024.
inputSize = [512 1024 32];
Создайте pix2pixHD глобальную генераторную сеть.
pix2pixHD = pix2pixHDGlobalGenerator(inputSize)
pix2pixHD = 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
Добавьте локальную сеть Enhancer к pix2pixHD сети.
pix2pixHDEnhanced = addPix2PixHDLocalEnhancer(pix2pixHD)
pix2pixHDEnhanced = dlnetwork with properties: Layers: [113x1 nnet.cnn.layer.Layer] Connections: [124x2 table] Learnables: [146x3 table] State: [0x3 table] InputNames: {'LocalEnhancer_inputLayer' 'GlobalGenerator_inputLayer'} OutputNames: {'LocalEnhancer_fActivation'} Initialized: 1
Отображение сети с помощью локального усилителя.
analyzeNetwork(pix2pixHDEnhanced)
net
- pix2pixHD сети генератораdlnetwork
объектPix2pixHD сеть генератора, заданная как dlnetwork
(Deep Learning Toolbox) объект. Можно создать сеть генератора pix2pixHD с помощью pix2pixHDGlobalGenerator
функция.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'FilterSizeInFirstAndLastBlocks',[5 7]
добавляет локальный усилитель, первый и последний слои свертки которого имеют размер 5 на 7'FilterSizeInFirstAndLastBlocks'
- Размер фильтра в первом и последнем слоях свертки7
(по умолчанию) | положительное нечетное целое число | 2-элементный вектор положительных нечетных целых чиселРазмер фильтра в первом и последнем слоях свертки локальной сети энхансера, заданный как положительное нечетное целое или 2-элементный вектор положительных нечетных целых чисел вида [ширина высоты ]. Когда вы задаете размер фильтра как скаляр, фильтр имеет равные высоту и ширину.
'FilterSizeInIntermediateBlocks'
- Размер фильтра в промежуточных слоях3
(по умолчанию) | 2-элементный вектор положительных нечетных целых чисел | положительное нечетное целое числоРазмер фильтра в промежуточных слоях свертки в локальной сети энхансера, заданный как положительное нечетное целое или 2-элементный вектор положительных нечетных целых чисел вида [ширина высоты ]. Промежуточные слои свертки являются слоями свертки, исключающими первый и последний слой свертки. Когда вы задаете размер фильтра как скаляр, фильтр имеет одинаковые высоту и ширину. Типичные значения находятся между 3 и 7.
'NumResidualBlocks'
- Количество остаточных блоков3
(по умолчанию) | положительное целое числоКоличество остаточных блоков в локальной сети энхансеров, заданное в виде положительного целого числа. Каждый остаточный блок состоит из набора сверток, нормализации и нелинейных слоев с пропускающими соединениями между каждым блоком.
'ConvolutionPaddingValue'
- Стиль заполнения"symmetric-exclude-edge"
(по умолчанию) | "symmetric-include-edge"
| "replicate"
| числовой скалярСтиль заполнения, используемый в локальной сети Enhancer, заданный в качестве одного из следующих значений.
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)
Объект слоя
'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'
- Префикс ко всем именам слоев"LocalEnhancer_"
(по умолчанию) | строку | вектор символовПрефикс ко всем именам слоев в локальной сети энхансеров, заданный как строковый или символьный вектор.
Типы данных: char
| string
netWithEnhancer
- pix2pixHD сеть генератора с локальным усилителемdlnetwork
объектPix2pixHD сеть генератора с локальным усилителем, возвращенная как dlnetwork
(Deep Learning Toolbox) объект.
addPix2PixHDLocalEnhancer
функция выполняет эти операции, чтобы добавить локальную сеть усилителя к pix2pixHD глобальной сети генератора. Улучшенная сеть по умолчанию соответствует архитектуре, предложенной Wang et. al. Ссылки.
Локальная сеть энхансера имеет начальный блок слоев, который принимает изображения размера [2 * H 2
* W C], где H - высота, W - ширина, а C - количество каналов входа в глобальную сеть генератора net. Когда
net
имеет несколько входных слоев изображений, размер входного изображения локальной сети усилителя в два раза превышает размер входного сигнала с максимальным разрешением.
После начального блока локальная сеть усилителя имеет один блок понижающей дискретизации, который понижает дискретизацию данных в два раза. Поэтому выход после понижающей дискретизации имеет размер [H W 2 * C].
addPix2PixHDLocalEnhancer
функция обрезает конечный блок от глобальной сети генератора. Функция затем добавляет вывод последнего блока повышающей дискретизации в глобальной сети генератора к выходу понижающей дискретизации данных из сети энхансера с помощью additionLayer
(Deep Learning Toolbox).
Выход сложения затем проходит через NumResidualBlocks
остаточные блоки от локального усилителя.
За остаточными блоками следует один блок повышающей дискретизации, который увеличивает данные до размера [2 * H 2 * W C].
addPix2PixHDLocalEnhancer
функция добавляет конечный блок в расширенную сеть. Слой свертки имеет свойства, заданные аргументами addPix2PixHDLocalEnhancer
. Если глобальная сеть генератора имеет конечный слой активации, то функция добавляет тот же тип слоя активации к расширенной сети.
Таблица описывает блоки слоев, которые состоят из локальной сети энхансеров.
Тип блока | Слои | Схема блока по умолчанию |
---|---|---|
Начальный блок |
|
|
Блок понижающей дискретизации |
|
|
Остаточный блок |
|
|
Блок повышающей дискретизации |
|
|
Конечный блок |
|
|
[1] Ван, Тин-Чун, Мин-Ю Лю, Цзюнь-Янь Чжу, Эндрю Тао, Ян Каутц и Брайан Катандзаро. «Синтез изображений в высоком разрешении и семантическая манипуляция с условными GAN». В 2018 году IEEE/CVF Conference on Компьютерное Зрение and Pattern Recognition, 8798-8807. Солт-Лейк-Сити, ЮТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.