Слой объединения Max
Макс. слой объединения выполняет субдискретизацию путем деления входа на прямоугольные области объединения и вычисления максимума каждой области.
layer = maxPooling2dLayer(poolSize)
layer = maxPooling2dLayer(poolSize,Name,Value)
создает макс. слой объединения и устанавливает свойство layer
= maxPooling2dLayer(poolSize
)PoolSize
.
устанавливает дополнительный layer
= maxPooling2dLayer(poolSize
,Name,Value
)Stride
, Name
и свойства HasUnpoolingOutputs
с помощью пар "имя-значение". Чтобы задать входное дополнение, используйте аргумент пары "имя-значение" 'Padding'
. Например, maxPooling2dLayer(2,'Stride',3)
создает макс. слой объединения с размером пула [2 2]
и шаг [3 3]
. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.
Используйте разделенные от запятой аргументы пары "имя-значение", чтобы задать размер дополнения, чтобы добавить вдоль ребер входа слоя и установить Stride
, Name
и свойства HasUnpoolingOutputs
. Заключите имена в одинарные кавычки.
maxPooling2dLayer(2,'Stride',3)
создает макс. слой объединения с размером пула [2 2]
и шаг [3 3]
.'Padding'
— Введите дополнение ребра[0 0 0 0]
(значение по умолчанию) | вектор неотрицательных целых чисел | 'same'
Введите дополнение ребра, заданное как пара, разделенная запятой, состоящая из 'Padding'
и одно из этих значений:
'same'
— Добавьте дополнение размера, вычисленного программным обеспечением при обучении или время прогноза так, чтобы вывод имел тот же размер как вход, когда шаг равняется 1. Если шаг больше, чем 1, то выходным размером является ceil(inputSize/stride)
, где inputSize
является высотой или шириной входа, и stride
является шагом в соответствующей размерности. Программное обеспечение добавляет тот же объем дополнения к верху и низу, и налево и право, если это возможно. Если дополнение, которое должно быть добавлено вертикально, имеет нечетное значение, то программное обеспечение добавляет дополнительное дополнение в нижнюю часть. Если дополнение, которое должно быть добавлено горизонтально, имеет нечетное значение, то программное обеспечение добавляет дополнительное дополнение направо.
Неотрицательный целочисленный p
— Добавляет дополнение размера p
ко всем ребрам входа.
Векторный [a b]
неотрицательных целых чисел — Добавляет дополнение размера a
к верху и низу входа и дополнению размера b
налево и право.
Векторный [t b l r]
неотрицательных целых чисел — Добавляет дополнение размера t
к верхней части, b
к нижней части, l
налево и r
справа от входа.
Пример:
'Padding',1
добавляет одну строку дополнения к верху и низу и один столбец дополнения налево и права на вход.
Пример:
'Padding','same'
добавляет дополнение так, чтобы вывод имел тот же размер как вход (если шаг равняется 1).
PoolSize
— Размерности объединения областейРазмерности областей объединения, заданных как вектор двух положительных целых чисел [h w]
, где h
является высотой и w
, являются шириной. При создании слоя можно задать PoolSize
как скаляр, чтобы использовать то же значение для обеих размерностей.
Если размерности шага, Stride
является меньше, чем соответствующие размерности объединения, то области объединения накладываются.
Дополнительные размерности PaddingSize
должны быть меньше, чем размерности области объединения PoolSize
.
Пример:
[2 1]
задает области объединения высоты 2 и ширина 1.
Stride
— Размер шага для того, чтобы пересечь вход[1 1]
(значение по умолчанию) | вектор двух положительных целых чиселРазмер шага для того, чтобы пересечь вход вертикально и горизонтально, заданный как вектор двух положительных целых чисел [a b]
, где a
является вертикальным размером шага и b
, является горизонтальным размером шага. При создании слоя можно задать Stride
как скаляр, чтобы использовать то же значение для обеих размерностей.
Если размерности шага, Stride
является меньше, чем соответствующие размерности объединения, то области объединения накладываются.
Дополнительные размерности PaddingSize
должны быть меньше, чем размерности области объединения PoolSize
.
Пример:
[2 3]
задает вертикальный размер шага 2 и горизонтальный размер шага 3.
PaddingSize
— Размер дополнения[0 0 0 0]
(значение по умолчанию) | вектор четырех неотрицательных целых чиселРазмер дополнения, чтобы применяться к входным границам, заданным как векторный [t b l r]
четырех неотрицательных целых чисел, где t
является дополнением, применился к верхней части, b
является дополнением, применился к нижней части, l
является дополнением, примененным налево, и r
является дополнением, примененным направо.
Когда вы создадите слой, используйте аргумент пары "имя-значение" 'Padding'
, чтобы задать дополнительный размер.
Пример:
[1 1 2 2]
добавляет одну строку дополнения к верху и низу и два столбца дополнения налево и права на вход.
PaddingMode
— Метод, чтобы определить дополнительный размер'manual'
(значение по умолчанию) | 'same'
Метод, чтобы определить дополнительный размер, заданный как 'manual'
или 'same'
.
Программное обеспечение автоматически устанавливает значение PaddingMode
на основе значения 'Padding'
, которое вы задаете при создании слоя.
Если вы устанавливаете опцию 'Padding'
на скаляр или вектор неотрицательных целых чисел, то программное обеспечение автоматически устанавливает PaddingMode
на 'manual'
.
Если вы устанавливаете опцию 'Padding'
на 'same'
, то программное обеспечение автоматически устанавливает PaddingMode
на 'same'
и вычисляет размер дополнения в учебное время так, чтобы вывод имел тот же размер как вход, когда шаг равняется 1. Если шаг больше, чем 1, то выходным размером является ceil(inputSize/stride)
, где inputSize
является высотой или шириной входа, и stride
является шагом в соответствующей размерности. Программное обеспечение добавляет тот же объем дополнения к верху и низу, и налево и право, если это возможно. Если дополнение, которое должно быть добавлено вертикально, имеет нечетное значение, то программное обеспечение добавляет дополнительное дополнение в нижнюю часть. Если дополнение, которое должно быть добавлено горизонтально, имеет нечетное значение, то программное обеспечение добавляет дополнительное дополнение направо.
Padding
— Размер дополнения[0 0]
(значение по умолчанию) | вектор двух неотрицательных целых чиселСвойство Padding
будет удалено в будущем релизе. Используйте PaddingSize
вместо этого. При создании слоя используйте аргумент пары "имя-значение" 'Padding'
, чтобы задать дополнительный размер.
Размер дополнения, чтобы применяться к входному граничит вертикально и горизонтально, заданный, когда векторный [a b]
двух неотрицательных целых чисел, где a
является дополнением, применился к верху и низу входных данных, и b
является дополнением, применился к левому и правому.
Пример:
[1 1]
добавляет одну строку дополнения к верху и низу и один столбец дополнения налево и права на вход.
HasUnpoolingOutputs
— Отметьте для выходных параметров к необъединению слояfalse
(значение по умолчанию) | true
Отметьте для выходных параметров к необъединению слоя, заданного как true
или false
.
Если значение HasUnpoolingOutputs
равняется false
, то макс. слой объединения имеет один вывод с именем 'out'
.
Чтобы использовать вывод макс. слоя объединения как вход к макс. слою необъединения, установите значение HasUnpoolingOutputs
к true
. В этом случае макс. слой объединения имеет два дополнительных выходных параметров, которые можно соединить с макс. слоем необъединения:
'indices'
— Индексы максимального значения в каждой объединенной области.
размер
Размер входа показывает карту.
Чтобы включить выходные параметры к макс. слою необъединения, области объединения макс. слоя объединения должны не накладываться.
Для получения дополнительной информации о том, как не объединить вывод макс. слоя объединения, смотрите maxUnpooling2dLayer
.
Имя
Имя слоя''
(значение по умолчанию) | вектор символов | представляет скаляр в виде строки
Имя слоя, заданное как вектор символов или скаляр строки. Чтобы включать слой в график слоя, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть со слоем, и Name
установлен в ''
, то программное обеспечение автоматически присваивает имя к слою в учебное время.
Типы данных: char | string
NumInputs
— Количество входных параметровКоличество входных параметров слоя. Этот слой принимает один вход только.
Типы данных: double
InputNames
— Введите имена{'in'}
(значение по умолчанию)Введите имена слоя. Этот слой принимает один вход только.
Типы данных: cell
NumOutputs
Количество выходных параметровКоличество выходных параметров слоя.
Если значение HasUnpoolingOutputs
равняется false
, то макс. слой объединения имеет один вывод с именем 'out'
.
Чтобы использовать вывод макс. слоя объединения как вход к макс. слою необъединения, установите значение HasUnpoolingOutputs
к true
. В этом случае макс. слой объединения имеет два дополнительных выходных параметров, которые можно соединить с макс. слоем необъединения:
'indices'
— Индексы максимального значения в каждой объединенной области.
размер
Размер входа показывает карту.
Чтобы включить выходные параметры к макс. слою необъединения, области объединения макс. слоя объединения должны не накладываться.
Для получения дополнительной информации о том, как не объединить вывод макс. слоя объединения, смотрите maxUnpooling2dLayer
.
Типы данных: double
OutputNames
— Выведите имена{'out'}
(значение по умолчанию) | {'out','indices','size'}
Выведите имена слоя.
Если значение HasUnpoolingOutputs
равняется false
, то макс. слой объединения имеет один вывод с именем 'out'
.
Чтобы использовать вывод макс. слоя объединения как вход к макс. слою необъединения, установите значение HasUnpoolingOutputs
к true
. В этом случае макс. слой объединения имеет два дополнительных выходных параметров, которые можно соединить с макс. слоем необъединения:
'indices'
— Индексы максимального значения в каждой объединенной области.
размер
Размер входа показывает карту.
Чтобы включить выходные параметры к макс. слою необъединения, области объединения макс. слоя объединения должны не накладываться.
Для получения дополнительной информации о том, как не объединить вывод макс. слоя объединения, смотрите maxUnpooling2dLayer
.
Типы данных: cell
Создайте макс. слой объединения с неналожением областей объединения.
layer = maxPooling2dLayer(2,'Stride',2)
layer = MaxPooling2DLayer with properties: Name: '' HasUnpoolingOutputs: 0 NumOutputs: 1 OutputNames: {'out'} Hyperparameters PoolSize: [2 2] Stride: [2 2] PaddingMode: 'manual' PaddingSize: [0 0 0 0]
Высота и ширина прямоугольных областей (размер пула) оба 2. Области объединения не накладываются, потому что размером шага для того, чтобы пересечь изображения вертикально и горизонтально (шаг) является также [2 2]
.
Включайте макс. слой объединения с неперекрывающимися областями в массиве Layer
.
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
Создайте макс. слой объединения с наложением областей объединения.
layer = maxPooling2dLayer([3 2],'Stride',2)
layer = MaxPooling2DLayer with properties: Name: '' HasUnpoolingOutputs: 0 NumOutputs: 1 OutputNames: {'out'} Hyperparameters PoolSize: [3 2] Stride: [2 2] PaddingMode: 'manual' PaddingSize: [0 0 0 0]
Этот слой создает области объединения размера [3 2] и берет максимум этих шести элементов в каждой области. Области объединения накладываются, потому что существуют размерности шага Stride
, которые являются меньше, чем соответствующие размерности объединения PoolSize
.
Включайте макс. слой объединения с наложением областей объединения в массиве Layer
.
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer([3 2],'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' Max Pooling 3x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
Макс. слой объединения выполняет субдискретизацию путем деления входа на прямоугольные области объединения и вычисления максимума каждой области.
Объединяющие слои следуют за сверточными слоями для субдискретизации, следовательно, сокращая количество связей со следующими слоями. Они не выполняют изучения себя, но сокращают количество параметров, которые будут изучены в следующих слоях. Они также помогают уменьшать сверхподбор кривой.
Макс. слой объединения возвращает максимальные значения прямоугольных областей его входа. Размер прямоугольных областей определяется аргументом poolSize
maxPoolingLayer
. Например, если poolSize
равняется [2,3]
, то слой возвращает максимальное значение в областях высоты 2 и ширина 3.
Объединение слоев сканирует через вход горизонтально, и вертикально в размерах шага можно задать использование аргумента пары "имя-значение" 'Stride'
. Если размер пула меньше, чем или равен шагу, то области объединения не накладываются.
Для неперекрывающихся областей (Pool Size и Stride равны), если входом к слою объединения является n-by-n, и размером области объединения является h-by-h, то слой объединения субдискретизирует области h [1]. Таким образом, выводом макс. или среднего слоя объединения для одного канала сверточного слоя является n/h-by-n/h. Для перекрывающихся областей вывод слоя объединения (Input Size – Pool Size + 2*Padding)/Stride + 1.
[1] Наги, J., Ф. Дукэтелл, Г. А. Ди Каро, Д. Сиресан, У. Мейер, А. Джусти, Ф. Наги, Дж. Шмидхубер, Л. М. Гэмбарделла. ''Объединяющие Max Сверточные Нейронные сети для Основанного на видении Ручного Распознавания Жеста''. Международная конференция IEEE по вопросам и Приложений для обработки изображений (ICSIPA2011), 2011 Сигнала.
averagePooling2dLayer
| convolution2dLayer
| maxUnpooling2dLayer
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.