3-D максимального слоя объединения
Слой объединения 3-D max выполняет понижающую дискретизацию, деля трехмерный вход на кубоидные области объединения и вычисляя максимум каждой области.
создает 3-D максимальный слой объединения и устанавливает layer
= maxPooling3dLayer(poolSize
)PoolSize
свойство.
устанавливает дополнительный layer
= maxPooling3dLayer(poolSize
,Name,Value
)Stride
и Name
свойства с использованием пар "имя-значение". Чтобы задать вход сигнала, используйте 'Padding'
аргумент пары "имя-значение". Для примера, maxPooling3dLayer(2,'Stride',3)
создает 3-D максимальный слой объединения с размером пула [2 2 2]
и перемещение [3 3 3]
. Можно задать несколько пары "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.
Используйте аргументы пары "имя-значение", разделенные запятыми, чтобы задать размер заполнения для добавления вдоль ребер входа слоя и задать Stride
и Name
свойства. Имена заключаются в одинарные кавычки.
maxPooling3dLayer(2,'Stride',3)
создает 3-D максимальный слой объединения с размером пула [2 2 2]
и перемещение [3 3 3]
.'Padding'
- Вход ребра0
(по умолчанию) | массив неотрицательных целых чисел | 'same'
Вход ребра, заданное как разделенная разделенными запятой парами, состоящая из 'Padding'
и одно из следующих значений:
'same'
- Добавить заполнение размера, вычисленного программным обеспечением во время обучения или предсказания, так что выход имеет тот же размер, что и вход, когда шаг равен 1. Если шаг больше 1, то выходной размер ceil(inputSize/stride)
, где inputSize
- высота, ширина или глубина входных и stride
входов - шаг в соответствующей размерности. Программное обеспечение добавляет одинаковое количество заполнения в верхнюю часть и дно, слева и справа, а также спереди и сзади, если это возможно. Если заполнение в заданной размерности имеет нечетное значение, то программное обеспечение добавляет дополнительное заполнение ко входу как отложение. Другими словами, программное обеспечение добавляет дополнительное вертикальное заполнение дна, дополнительное горизонтальное заполнение справа и дополнительное заполнение глубины задней части входа.
Неотрицательное целое число p
- Добавить заполнение размера p
ко всем ребрам входа.
Трехэлементный векторный [a b c]
из неотрицательных целых чисел - Добавить заполнение размера a
к верхней части и дну, заполнение размером b
слева и справа и заполнение размера c
на переднюю и заднюю стороны входа.
Матрица 2 на 3 [t l f;b r k]
из неотрицательных целых чисел - Добавить заполнение размера t
на верхнюю часть, b
на дно, l
налево, r
направо, f
на передний план, и k
на заднюю сторону входа. Другими словами, верхняя строка задает предварительную добавку, а вторая строка определяет отложенную добавку в трёх размерностях.
Пример:
'Padding',1 добавляет одну строку заполнения к верхней части и дну, один столбец заполнения слева и справа и одну плоскость заполнения к передней и задней частям входа.
Пример:
'Padding','same'
добавляет заполнение так, чтобы выход имел тот же размер что и вход (если шаг равен 1).
PoolSize
- Размерности областей объединенияРазмерности областей объединения, заданные как вектор из трех положительных целых чисел [h w d]
, где h
- высота, w
- ширина, и d
- глубина. При создании слоя можно задать PoolSize
в качестве скаляра для использования одинакового значения для всех трёх размерностей.
Если размерности шага Stride
меньше, чем соответствующие размерности объединения, тогда области объединения перекрываются.
Заполнение размерностей PaddingSize
должно быть меньше, чем размерности области объединения PoolSize
.
Пример:
[2 1 1] задает области объединения высоты 2, ширины 1 и глубины 1.
Stride
- Размер шага для обхода входа[1 1 1]
(по умолчанию) | вектор из трех положительных целых чиселРазмер шага для прохождения входа в трёх размерностях, заданный как вектор [a b c]
из трех положительных целых чисел, где a
- вертикальный размер шага, b
- горизонтальный размер шага, и c
- размер шага по направлению глубины. При создании слоя можно задать Stride
в качестве скаляра для использования того же значения для размеров шагов во всех трех направлениях.
Если размерности шага Stride
меньше, чем соответствующие размерности объединения, тогда области объединения перекрываются.
Заполнение размерностей PaddingSize
должно быть меньше, чем размерности области объединения PoolSize
.
Пример:
[2 3 1] задает размер шага по вертикали 2, размер шага по горизонтали 3 и размер шага по глубине 1.
PaddingSize
- Размер заполнения[0 0 0;0 0 0]
(по умолчанию) | матрицу 2 на 3 неотрицательных целых чиселРазмер заполнения для применения к входным границам, заданный как матрица 2 на 3 [t l f;b r k]
неотрицательных целых чисел, где t
и b
является ли заполнение приложенным к верхней части и дну в вертикальном направлении, l
и r
заполнение применяется слева и справа в горизонтальном направлении, и f
и k
- заполнение, нанесенное спереди и сзади на глубину. Другими словами, верхняя строка задает предварительную добавку, а вторая строка определяет отложенную добавку в трёх размерностях.
Когда вы создаете слой, используйте 'Padding'
аргумент пары "имя-значение" для определения размера заполнения.
Пример:
[1 2 4;1 2 4] добавляет одну строку заполнения к верхней части и дну, две колонны заполнения слева и справа и четыре плоскости заполнения к передней и задней частям входа.
PaddingMode
- Метод определения размера заполнения'manual'
(по умолчанию) | 'same'
Метод определения размера заполнения, заданный как 'manual'
или 'same'
.
Программа автоматически устанавливает значение PaddingMode
на основе значения 'Padding', заданного при создании слоя.
Если вы задаете 'Padding'
опция скаляру или вектору неотрицательных целых чисел, затем программа автоматически устанавливает PaddingMode
на 'manual'
.
Если вы задаете 'Padding'
опция для 'same'
, затем программное обеспечение автоматически устанавливает PaddingMode
на 'same'
и вычисляет размер заполнения во время обучения так, чтобы выход имел тот же размер, что и вход, когда шаг равен 1. Если шаг больше 1, то выходной размер ceil(inputSize/stride)
, где inputSize
- высота, ширина или глубина входных и stride
входов - шаг в соответствующей размерности. Программное обеспечение добавляет одинаковое количество заполнения в верхнюю часть и дно, слева и справа, а также спереди и сзади, если это возможно. Если заполнение в заданной размерности имеет нечетное значение, то программное обеспечение добавляет дополнительное заполнение ко входу как отложение. Другими словами, программное обеспечение добавляет дополнительное вертикальное заполнение дна, дополнительное горизонтальное заполнение справа и дополнительное заполнение глубины задней части входа.
Name
- Имя слоя''
(по умолчанию) | символьный вектор | строковый скаляр
Имя слоя, заданное как вектор символов или строковый скаляр. Чтобы включить слой в график слоев, необходимо задать непустое уникальное имя слоя. Если вы обучаете последовательную сеть с слоем и Name
установлено в ''
затем программа автоматически присваивает слою имя во время обучения.
Типы данных: char
| string
NumInputs
- Количество входовКоличество входов слоя. Этот слой принимает только один вход.
Типы данных: double
InputNames
- Входные имена{'in'}
(по умолчанию)Входные имена слоя. Этот слой принимает только один вход.
Типы данных: cell
NumOutputs
- Количество выходовКоличество выходов слоя. Этот слой имеет только один выход.
Типы данных: double
OutputNames
- Выходные имена{'out'}
(по умолчанию)Выходные имена слоя. Этот слой имеет только один выход.
Типы данных: cell
Создайте максимальный слой 3-D объединения с неперекрывающимися областями объединения.
layer = maxPooling3dLayer(2,'Stride',2)
layer = MaxPooling3DLayer with properties: Name: '' NumOutputs: 1 OutputNames: {'out'} Hyperparameters PoolSize: [2 2 2] Stride: [2 2 2] PaddingMode: 'manual' PaddingSize: [2x3 double]
Высота, ширина и глубина кубоидальных областей (размер бассейна) равны 2. Размер шага для обхода изображений (stride) равен 2 во всех размерностях. Области объединения не перекрываются, потому что шаг больше или равен соответствующему размеру пула во всех размерностях.
Включите максимальный слой объединения с неперекрывающимися областями в Layer
массив.
layers = [ ... image3dInputLayer([28 28 28 3]) convolution3dLayer(5,20) reluLayer maxPooling3dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
layers = 7x1 Layer array with layers: 1 '' 3-D Image Input 28x28x28x3 images with 'zerocenter' normalization 2 '' Convolution 20 5x5x5 convolutions with stride [1 1 1] and padding [0 0 0; 0 0 0] 3 '' ReLU ReLU 4 '' 3-D Max Pooling 2x2x2 max pooling with stride [2 2 2] and padding [0 0 0; 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
Создайте максимальный слой 3-D объединения с перекрывающимися областями объединения и заполнением для верхней и нижней части входа.
layer = maxPooling3dLayer([3 2 2],'Stride',2,'Padding',[1 0 0])
layer = MaxPooling3DLayer with properties: Name: '' NumOutputs: 1 OutputNames: {'out'} Hyperparameters PoolSize: [3 2 2] Stride: [2 2 2] PaddingMode: 'manual' PaddingSize: [2x3 double]
Этот слой создает области объединения размера 3 на 2 на 2 и берет максимум этих двенадцати элементов в каждой области. Шаг равен 2 во всех размерностях. Области объединения перекрываются, потому что существуют размерности шага Stride
которые меньше соответствующих размерностей объединения PoolSize
.
Слой объединения 3-D max расширяет функциональность слоя объединения max до третьей размерности, глубины. Максимальный слой объединения выполняет понижающую дискретизацию, разделяя вход на прямоугольные или кубоидальные области объединения и вычисляя максимальное значение каждой области. Чтобы узнать больше, смотрите определение максимального слоя объединения на maxPooling2dLayer
страница с описанием.
averagePooling3dLayer
| convolution3dLayer
| globalAveragePooling3dLayer
| maxPooling2dLayer
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.