averagePooling3dLayer

3-D средний слой объединения

Описание

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

Создание

Описание

layer = averagePooling3dLayer(poolSize) создает средний слой объединения и устанавливает PoolSize свойство.

пример

layer = averagePooling3dLayer(poolSize,Name,Value) устанавливает дополнительный Stride и Name свойства с помощью пар "имя-значение". Чтобы задать входное дополнение, используйте 'Padding' аргумент пары "имя-значение". Например, averagePooling3dLayer(2,'Stride',2) создает 3-D средний слой объединения с размером пула [2 2 2] и шаг [2 2 2]. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.

Входные параметры

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

Аргументы в виде пар имя-значение

Используйте разделенные от запятой аргументы пары "имя-значение", чтобы задать размер нулевого дополнения, чтобы добавить вдоль ребер входа слоя или установить Stride и Name свойства. Заключите имена в одинарные кавычки.

Пример: averagePooling3dLayer(2,'Stride',2) создает 3-D средний слой объединения с размером пула [2 2 2] и шаг [2 2 2].

Введите дополнение ребра в виде разделенной запятой пары, состоящей из '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).

Свойства

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

Среднее объединение

Размерности областей объединения в виде вектора из трех положительных целых чисел [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 шаг в соответствующей размерности. Программное обеспечение добавляет тот же объем дополнения к верху и низу, налево и праву, и к передней и задней части, если это возможно. Если дополнение в данной размерности имеет нечетное значение, то программное обеспечение добавляет дополнительное дополнение во вход как постдополнение. Другими словами, программное обеспечение добавляет дополнительное вертикальное дополнение в нижнюю часть, дополнительное горизонтальное дополнение направо и дополнительное дополнение глубины к задней части входа.

Значение раньше заполняло вход в виде 0 или 'mean'.

Когда вы используете 'Padding' опция, чтобы добавить дополнение во вход, значение примененного дополнения может быть одним из следующего:

  • 0 — Вход дополнен нулями в положениях, заданных 'Padding' опция. Заполненные области включены в вычисление среднего значения областей объединения вдоль ребер.

  • 'mean' — Вход дополнен средним значением области объединения в положениях, заданных 'Padding' опция. Заполненные области эффективно исключены из вычисления среднего значения каждой области объединения.

Пример: 'PaddingValue','mean'

Слой

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Создайте 3-D средний слой объединения с неналожением областей объединения, который прореживает на коэффициент 2.

layer = averagePooling3dLayer(2,'Stride',2)
layer = 
  AveragePooling3DLayer with properties:

            Name: ''

   Hyperparameters
        PoolSize: [2 2 2]
          Stride: [2 2 2]
     PaddingMode: 'manual'
     PaddingSize: [2x3 double]
    PaddingValue: 0

Включайте 3-D средний слой объединения в Layer массив.

layers = [ ...
    image3dInputLayer([28 28 28 3])
    convolution3dLayer(5,20)
    reluLayer
    averagePooling3dLayer(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   ''   Average 3D Pooling      2x2x2 average 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 = averagePooling3dLayer([3 2 2],'Stride',2,'Padding',[1 0 0])
layer = 
  AveragePooling3DLayer with properties:

            Name: ''

   Hyperparameters
        PoolSize: [3 2 2]
          Stride: [2 2 2]
     PaddingMode: 'manual'
     PaddingSize: [2x3 double]
    PaddingValue: 0

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

Больше о

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

Введенный в R2019a
Для просмотра документации необходимо авторизоваться на сайте