avgpool

Объедините данные в средние значения по пространственным размерностям

Описание

Операция среднего объединения выполняет понижающую дискретизацию, разделяя вход на области объединения и вычисляя среднее значение каждой области.

avgpool функция применяет среднюю операцию объединения к dlarray данные. Использование dlarray облегчает работу с данными высоких размерностей, позволяя пометить размеры. Для примера можно пометить, какие размерности соответствуют пространственным, временным, канальным и пакетным размерностям, используя 'S', 'T', 'C', и 'B' метки, соответственно. Для неопределенных и других размерностей используйте 'U' метка. Для dlarray функции объекта, которые работают над конкретными размерностями, можно задать метки размера путем форматирования dlarray объект непосредственно, или при помощи 'DataFormat' опция.

Примечание

Чтобы применить среднее объединение в layerGraph объект или Layer массив, используйте один из следующих слоев:

пример

dlY = avgpool(dlX,poolsize) применяет среднюю операцию объединения к форматированному dlarray dlX объекта. Функция понижает значение входа путем деления его на области, заданные poolsize и вычисление среднего значения данных в каждой области. Область выхода dlY является форматированным dlarray с теми же метками размерностей, что и dlX.

Функция по умолчанию объединяет до три размерности dlX маркированные 'S' (пространственный). Для пула по размерностям, помеченным 'T' (time), задайте область объединения с 'T' размерность с помощью 'PoolFormat' опция.

пример

dlY = avgpool(dlX,'global') вычисляет глобальное среднее значение по пространственным размерностям входа dlX. Этот синтаксис эквивалентен установке poolsize в предыдущем синтаксисе размера 'S' размерности dlX.

dlY = avgpool(___,'DataFormat',FMT) применяет среднюю операцию объединения к неформатированному dlarray dlX объекта с форматом, заданным FMT использование любого из предыдущих синтаксисов. Область выхода dlY является неформатированным dlarray объект с размерностями в том же порядке, что и dlX. Для примера, 'DataFormat','SSCB' задает данные для 2-D среднего объединения с форматом 'SSCB' (пространственный, пространственный, канальный, пакетный).

пример

dlY = avgpool(___,Name,Value) задает опции, используя один или несколько аргументы пары "имя-значение". Для примера, 'PoolFormat','T' задает область объединения для 1-D объединения с форматом 'T' (время).

Примеры

свернуть все

Создайте форматированный dlarray объект, содержащий партию из 128 изображений 28 на 28 с 3 каналами. Задайте формат 'SSCB' (пространственный, пространственный, канальный, пакетный).

miniBatchSize = 128;
inputSize = [28 28];
numChannels = 3;
X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);
dlX = dlarray(X,'SSCB');

Просмотрите размер и формат входных данных.

size(dlX)
ans = 1×4

    28    28     3   128

dims(dlX)
ans = 
'SSCB'

Применить 2-D среднее объединение с областями объединения 2 на 2 с помощью avgpool функция.

poolSize = [2 2];
dlY = avgpool(dlX,poolSize);

Просмотрите размер и формат выхода.

size(dlY)
ans = 1×4

    27    27     3   128

dims(dlY)
ans = 
'SSCB'

Создайте форматированный dlarray объект, содержащий партию из 128 изображений 28 на 28 с 3 каналами. Задайте формат 'SSCB' (пространственный, пространственный, канальный, пакетный).

miniBatchSize = 128;
inputSize = [28 28];
numChannels = 3;
X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);
dlX = dlarray(X,'SSCB');

Просмотрите размер и формат входных данных.

size(dlX)
ans = 1×4

    28    28     3   128

dims(dlX)
ans = 
'SSCB'

Применить 2-D глобальное среднее объединение с помощью avgpool функция путем определения 'global' опция.

dlY = avgpool(dlX,'global');

Просмотрите размер и формат выхода.

size(dlY)
ans = 1×4

     1     1     3   128

dims(dlY)
ans = 
'SSCB'

Создайте форматированный dlarray объект, содержащий партию из 128 последовательностей длиной 100 с 12 каналами. Задайте формат 'CBT' (канал, пакет, время).

miniBatchSize = 128;
sequenceLength = 100;
numChannels = 12;
X = rand(numChannels,miniBatchSize,sequenceLength);
dlX = dlarray(X,'CBT');

Просмотрите размер и формат входных данных.

size(dlX)
ans = 1×3

    12   128   100

dims(dlX)
ans = 
'CBT'

Применить 1-D среднее объединение с областями объединения размера 2 с полосой 2 с помощью avgpool функция путем определения 'PoolFormat' и 'Stride' опции.

poolSize = 2;
dlY = avgpool(dlX,poolSize,'PoolFormat','T','Stride',2);

Просмотрите размер и формат выхода.

size(dlY)
ans = 1×3

    12   128    50

dims(dlY)
ans = 
'CBT'

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

свернуть все

Входные данные, заданные как форматированный или неформатированный dlarray объект.

Если dlX является неформатированным dlarray, затем необходимо задать формат с помощью 'DataFormat' опция.

Функция по умолчанию объединяет до три размерности dlX маркированные 'S' (пространственный). Для пула по размерностям, помеченным 'T' (time), задайте область объединения с 'T' размерность с помощью 'PoolFormat' опция.

Размер областей объединения, заданный как числовой скаляр или числовой вектор.

Для пула с использованием области объединения с ребрами того же размера задайте poolsize как скаляр. Области объединения имеют одинаковый размер по всем размерностям, заданным 'PoolFormat'.

Для объединения с помощью области объединения с ребрами разных размеров задайте poolsize как вектор, где poolsize(i) - размер соответствующей размерности в 'PoolFormat'.

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Stride',2 задает шаг областей объединения следующим 2.

Размерность неформатированных входных данных, заданный как разделенная разделенными запятой парами, состоящая из 'DataFormat' и вектор символов или строковый скаляр FMT который обеспечивает метку для каждой размерности данных.

При указании формата dlarray объект, каждый символ предоставляет метку для каждой размерности данных и должен быть одним из следующих:

  • 'S' - Пространственный

  • 'C' - Канал

  • 'B' - Партия (например, выборки и наблюдения)

  • 'T' - Время (например, временные шаги последовательностей)

  • 'U' - Не определено

Можно задать несколько размерности, маркированных 'S' или 'U'. Можно использовать метки 'C', 'B', и 'T' самое большее сразу.

Вы должны задать 'DataFormat' когда входные данные не являются форматированным dlarray.

Пример: 'DataFormat','SSCB'

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

Размерность области объединения, заданный как разделенная разделенными запятой парами, состоящая из 'PoolFormat' и вектор символов или строковый скаляр, который обеспечивает метку для каждой размерности области объединения.

Значение по умолчанию 'PoolFormat' зависит от задачи:

ЗадачаДефолт
1-D объединения'S' (пространственный)
2-D объединения'SS' (пространственный, пространственный)
3-D объединения'SSS' (пространственный, пространственный, пространственный)

Формат должен иметь либо нет 'S' (пространственные) размерности или столько 'S' (пространственные) размерности в качестве входных данных.

Функция по умолчанию объединяет до три размерности dlX маркированные 'S' (пространственный). Для пула по размерностям, помеченным 'T' (time), задайте область объединения с 'T' размерность с помощью 'PoolFormat' опция.

Пример: 'PoolFormat','T'

Размер шага для прохождения входных данных, заданный как разделенная разделенными запятой парами, состоящая из 'Stride' и числовой скаляр или числовой вектор. Если вы задаете 'Stride' в качестве скаляра то же значение используется для всех пространственных размерностей. Если вы задаете 'Stride' в качестве вектора того же размера, что и количество пространственных размерностей входных данных, векторные значения используются для соответствующих пространственных размерностей.

Значение по умолчанию 'Stride' является 1. Если 'Stride' меньше poolsize в любой размерности области объединения перекрываются.

The Stride параметр не поддерживается для глобального объединения с использованием 'global' опция.

Пример: 'Stride',3

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

Размер заполнения, применяемого к ребрам данных, задается как разделенная разделенными запятой парами, состоящая из 'Padding' и одно из следующих:

  • 'same' - Размер заполнения устанавливается таким образом, чтобы выходной размер совпадал с размером входного сигнала, когда полоска 1. В более общем случае выходной размер каждой пространственной размерности ceil(inputSize/stride), где inputSize - размер входа по пространственной размерности.

  • Числовой скаляр - одинаковое количество заполнения применяется к обоим концам всех пространственных размерностей.

  • Числовой вектор - различное количество заполнения применяется вдоль каждой пространственной размерности. Используйте вектор размера d, где d - количество пространственных размерностей входных данных. The ith элемент вектора задает размер заполнения, приложенного к началу и концу вдоль i2ая пространственная размерность.

  • Числовая матрица - различное количество заполнения применяется к началу и концу каждой пространственной размерности. Используйте матрицу размера 2-by- d, где d - количество пространственных размерностей входных данных. Элемент (1,d) задает размер заполнения, применяемого к началу пространственной размерности d. Элемент (2,d) задает размер заполнения, применяемого к концу пространственной размерности d. Например, в 2-D формат следующий [top, left; bottom, right].

The 'Padding' параметр не поддерживается для глобального объединения с использованием 'global' опция.

Пример: 'Padding','same'

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

Значение, используемое для заполнения входа, задается как 0 или 'mean'.

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

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

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

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

Выходные аргументы

свернуть все

Объединенные данные, возвращенные как dlarray с тем же базовым типом данных, что и dlX.

Если входные данные dlX является форматированным dlarray, затем dlY имеет тот же формат, что и dlX. Если входные данные не являются форматированным dlarray, затем dlY является неформатированным dlarray с тем же порядком размерности, что и входные данные.

Подробнее о

свернуть все

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

The avgpool функция объединяет входные данные в средние значения. Для получения дополнительной информации смотрите определение Среднего слоя объединения на averagePooling2dLayer страница с описанием.

Расширенные возможности

Введенный в R2019b