Создание глобальной сети генераторов pix2pixHD
создает сеть генератора pix2pixHD для ввода размера net = pix2pixHDGlobalGenerator(inputSize)inputSize. Дополнительные сведения об архитектуре сети см. в разделе Сеть генератора pix2pixHD.
Для выполнения этой функции требуется 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] задает размер ввода для 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' | Pad с использованием зеркальных значений входных данных, включая значения краев |
|
'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"или дескриптор функции. Дополнительные сведения см. в разделе Определение пользовательской функции инициализации веса (панель инструментов глубокого обучения).
'ActivationLayer' - Функция активации"relu" (по умолчанию) | "leakyRelu" | "elu" | объект-слойФункция активации для использования в сети, указанная как одно из этих значений. Дополнительные сведения и список доступных слоев см. в разделе Слои активации (панель инструментов глубокого обучения).
"relu" - Использовать reluLayer (инструментарий для глубокого обучения)
"leakyRelu" - Использовать leakyReluLayer (Deep Learning Toolbox) с масштабным коэффициентом 0,2
"elu" - Использовать eluLayer (инструментарий для глубокого обучения)
Объект слоя
'FinalActivationLayer' - Функция активации после окончательного свертывания"tanh" (по умолчанию) | "sigmoid" | "softmax" | "none" | объект-слойФункция активации после конечного слоя свертки, заданная как одно из этих значений. Дополнительные сведения и список доступных слоев см. в разделе Выходные слои (панель инструментов глубокого обучения).
"tanh" - Использовать tanhLayer (инструментарий для глубокого обучения)
"sigmoid" - Использовать sigmoidLayer (инструментарий для глубокого обучения)
"softmax" - Использовать softmaxLayer (инструментарий для глубокого обучения)
"none" - Не использовать окончательный уровень активации
Объект слоя
'NormalizationLayer' - Операция нормализации"instance" (по умолчанию) | "none" | "batch" | объект-слойОперация нормализации, используемая после каждой свертки, заданная как одно из этих значений. Дополнительные сведения и список доступных слоев см. в разделах Нормализация, Отсев и Обрезка слоев (Панель инструментов глубокого обучения).
"instance" - Использовать instanceNormalizationLayer (инструментарий для глубокого обучения)
"batch" - Использовать batchNormalizationLayer (инструментарий для глубокого обучения)
"none" - Не использовать уровень нормализации
Объект слоя
'Dropout' - Вероятность отсева0 (по умолчанию) | число в диапазоне [0, 1]Вероятность отсева, указанная как число в диапазоне [0, 1]. Если указано значение 0, то сеть не включает уровни отсева. Если указано значение больше, чем 0, то сеть включает в себя dropoutLayer (Deep Learning Toolbox) в каждом остаточном блоке.
'NamePrefix' - Префикс ко всем именам слоев"GlobalGenerator_" (по умолчанию) | строка | символьный векторПрефикс ко всем именам слоев в сети, заданный как строковый или символьный вектор.
Типы данных: char | string
net - сеть генератора pix2pixHDdlnetwork объектPix2pixHD генераторная сеть, возвращенная как dlnetwork(Панель инструментов глубокого обучения).
Сеть генераторов pix2pixHD состоит из модуля кодера, за которым следует модуль декодера. Сеть по умолчанию соответствует архитектуре, предложенной Wang et. al. [1].
Модуль кодера понижает выборку входного сигнала на коэффициент 2 ^NumDownsamplingBlocks. Модуль кодера состоит из начального блока слоев, NumDownsamplingBlocks блоки понижающей дискретизации и NumResidualBlocks остаточные блоки. Модуль декодера увеличивает входной сигнал на коэффициент 2 ^NumDownsamplingBlocks. Модуль декодера состоит из: NumDownsamplingBlocks блоки повышающей дискретизации и конечный блок.
Таблица описывает блоки уровней, которые содержат модули кодера и декодера.
| Тип блока | Слои | Схема блока по умолчанию |
|---|---|---|
| Начальный блок |
|
|
| Блок понижающей дискретизации |
|
|
| Остаточный блок |
|
|
| Блок повышающей дискретизации |
|
|
| Окончательный блок |
|
|
Сеть дискриминаторов для pix2pixHD можно создать с помощью patchGANDiscriminator функция.
Обучите сеть pix2pixHD GAN, используя таможенную учебную петлю.
[1] Ван, Тин-Чунь, Мин-Ю Лю, Цзюнь-Янь Чжу, Эндрю Тао, Ян Каутц и Брайан Катандзаро. «Синтез изображений высокого разрешения и семантическая манипуляция с условными GAN». В 2018 году Конференция IEEE/CVF по компьютерному зрению и распознаванию образов, 8798-8807. Солт-Лейк-Сити, УТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.
addPix2PixHDLocalEnhancer | blockedNetwork | cycleGANGenerator | encoderDecoderNetwork | unitGenerator
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.