maxPooling3dLayer

3-D макс. слой объединения

Описание

3-D макс. слой объединения выполняет субдискретизацию путем деления 3D входа на кубовидные области объединения и вычисления максимума каждой области.

Создание

Синтаксис

layer = maxPooling3dLayer(poolSize)
layer = maxPooling3dLayer(poolSize,Name,Value)

Описание

layer = maxPooling3dLayer(poolSize) создает 3-D макс. слой объединения и устанавливает свойство 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' и одно из этих значений:

  • '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).

Свойства

развернуть все

Объединение Max

Размерности областей объединения, заданных как вектор трех положительных целых чисел, [h w d], где h является высотой, w, является шириной и d, являются глубиной. При создании слоя можно задать PoolSize как скаляр, чтобы использовать то же значение для всех трех измерений.

Если размерности шага, Stride является меньше, чем соответствующие размерности объединения, то области объединения накладываются.

Дополнительные размерности PaddingSize должны быть меньше, чем размерности области объединения PoolSize.

Пример: [2 1 1] задает области объединения высоты 2, ширина 1, и глубина 1.

Размер шага для того, чтобы пересечь вход в трех измерениях, заданных как векторный [a b c] трех положительных целых чисел, где a является вертикальным размером шага, b, является горизонтальным размером шага, и c является размером шага вдоль направления глубины. При создании слоя можно задать Stride как скаляр, чтобы использовать то же значение для размеров шага во всех трех направлениях.

Если размерности шага, Stride является меньше, чем соответствующие размерности объединения, то области объединения накладываются.

Дополнительные размерности PaddingSize должны быть меньше, чем размерности области объединения PoolSize.

Пример: [2 3 1] задает вертикальный размер шага 2, горизонтальный размер шага 3 и размер шага вдоль глубины 1.

Размер дополнения, чтобы применяться к входным границам, заданным, когда 2 3, матричный [t l f;b r k] неотрицательных целых чисел, где t и b являются дополнением, применился к верху и низу в вертикальном направлении, l и r являются дополнением, применился к левому и правому в горизонтальном направлении, и f и k являются дополнением, применился к передней и задней части вдоль глубины. Другими словами, верхняя строка задает предварительное дополнение, и вторая строка задает постдополнение в трех измерениях.

Когда вы создадите слой, используйте аргумент пары "имя-значение" 'Padding', чтобы задать дополнительный размер.

Пример: [1 2 4;1 2 4] добавляет одну строку дополнения к верху и низу, двум столбцам дополнения налево и права и четырех плоскостей дополнения к передней и задней части входа.

Метод, чтобы определить дополнительный размер, заданный как 'manual' или 'same'.

Программное обеспечение автоматически устанавливает значение PaddingMode на основе 'Дополнительного' значения, которое вы задаете при создании слоя.

  • Если вы устанавливаете опцию 'Padding' на скаляр или вектор неотрицательных целых чисел, то программное обеспечение автоматически устанавливает PaddingMode на 'manual'.

  • Если вы устанавливаете опцию 'Padding' на 'same', то программное обеспечение автоматически устанавливает PaddingMode на 'same' и вычисляет размер дополнения в учебное время так, чтобы вывод имел тот же размер как вход, когда шаг равняется 1. Если шаг больше, чем 1, то выходным размером является ceil(inputSize/stride), где inputSize является высотой, шириной, или глубина входа и stride является шагом в соответствующей размерности. Программное обеспечение добавляет тот же объем дополнения к верху и низу, налево и праву, и к передней и задней части, если это возможно. Если дополнение в данной размерности имеет нечетное значение, то программное обеспечение добавляет дополнительное дополнение во вход как постдополнение. Другими словами, программное обеспечение добавляет дополнительное вертикальное дополнение в нижнюю часть, дополнительное горизонтальное дополнение направо и дополнительное дополнение глубины к задней части входа.

Слой

Имя слоя, заданное как вектор символов или скаляр строки. Чтобы включать слой в график слоя, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть со слоем, и Name установлен в '', то программное обеспечение автоматически присваивает имя к слою в учебное время.

Типы данных: char | string

Количество входных параметров слоя. Этот слой принимает один вход только.

Типы данных: double

Введите имена слоя. Этот слой принимает один вход только.

Типы данных: cell

Количество выходных параметров слоя. Этот слой имеет один вывод только.

Типы данных: double

Выведите имена слоя. Этот слой имеет один вывод только.

Типы данных: 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. Размер шага для того, чтобы пересечь изображения (шаг) 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: ''
    HasUnpoolingOutputs: 0

   Hyperparameters
               PoolSize: [3 2 2]
                 Stride: [2 2 2]
            PaddingMode: 'manual'
            PaddingSize: [1 1 0 0 0 0]

Этот слой создает области объединения размера 3 2 на 2 и берет максимум этих двенадцати элементов в каждой области. Шаг 2 во всех размерностях. Области объединения накладываются, потому что существуют размерности шага Stride, которые являются меньше, чем соответствующие размерности объединения PoolSize.

Больше о

развернуть все

Введенный в R2019a