maxpool

Объедините данные к максимальному значению

Описание

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

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

Примечание

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

пример

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

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

Для бесформатных входных данных используйте 'DataFormat' опция.

[dlY,indx,inputSize] = maxpool(dlX,poolsize) также возвращает линейные индексы максимального значения в каждой объединенной области, и размер входной функции сопоставляют dlX для использования с maxunpool функция.

пример

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

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

пример

___ = maxpool(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение". Например, 'PoolFormat','T' задает область объединения для 1D объединения с форматом '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'

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

poolSize = [2 2];
dlY = maxpool(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'

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

dlY = maxpool(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'

Примените 1D максимальное объединение с объединением областей размера 2 шагом 2 использований maxpool функция путем определения 'PoolFormat' и 'Stride' опции.

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

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

size(dlY)
ans = 1×3

    12   128    50

dims(dlY)
ans = 
'CBT'

Создайте отформатированный 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 использования шага 2.

[dlY,indx,dataSize] = maxpool(dlX,2,'Stride',2);

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

size(dlY)
ans = 1×4

    14    14     3   128

dims(dlY)
ans = 
'SSCB'

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

dataSize
dataSize = 1×4

    28    28     3   128

Не объедините данные с помощью индексов и размера данных от maxpool операция.

dlY = maxunpool(dlY,indx,dataSize);

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

size(dlY)
ans = 1×4

    28    28     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'

Примените 1D максимальное объединение с объединением областей размера 2 шагом 2 использований maxpool функция путем определения 'PoolFormat' и 'Stride' опции.

poolSize = 2;
[dlY,indx,dataSize] = maxpool(dlX,poolSize,'PoolFormat','T','Stride',2);

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

size(dlY)
ans = 1×3

    12   128    50

dims(dlY)
ans = 
'CBT'

Не объедините данные с помощью индексов и размера данных от maxpool операция.

dlY = maxunpool(dlY,indx,dataSize);

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

size(dlY)
ans = 1×3

    12   128   100

dims(dlY)
ans = 
'CBT'

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

свернуть все

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

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

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

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

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

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

Аргументы name-value

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

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

Порядок размерности бесформатных входных данных в виде вектора символов или строкового скаляра FMT это обеспечивает метку для каждой размерности данных.

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

  • "S" — Пространственный

  • "C" — Канал

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

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

  • "U" — Незаданный

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

Необходимо задать DataFormat когда входными данными не является отформатированный dlarray.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Числовой вектор — различный объем дополнения применяется по каждому пространственному измерению. Используйте вектор из размера d, где d количество пространственных размерностей входных данных. iэлемент th вектора указывает, что размер дополнения применился к запуску и концу вдоль ith пространственная размерность.

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

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

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

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

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

свернуть все

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

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

Индексы максимальных значений в каждой объединенной области, возвращенной как dlarray. Каждое значение в indx представляет местоположение соответствующего максимального значения в dlY, данный как линейный индекс значений в dlX.

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

Если dlX не отформатированный dlarray, indx бесформатный dlarray. В этом случае, indx возвращен с выполняющим приказом размерности: весь 'S' размерности, сопровождаемые 'C'B, и 'T' размерности, затем весь 'U' размерности. Размер indx совпадает с размером dlY когда dlY переставлен, чтобы совпадать с ранее установленным порядком размерности.

Используйте indx выведите с maxunpool функционируйте, чтобы не объединить выход maxpool.

indx выведите не поддерживается при использовании 'global' опция.

Размер входа показывает карту, возвращенную как числовой вектор.

Используйте inputSize выведите с maxunpool функционируйте, чтобы не объединить выход maxpool.

inputSize выведите не поддерживается при использовании 'global' опция.

Больше о

свернуть все

Максимальное объединение

maxpool функционируйте объединяет входные данные к максимальным значениям. Для получения дополнительной информации см. определение Слоя Объединения Max на maxPooling2dLayer страница с описанием.

Вопросы совместимости

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

Поведение изменяется в R2020a

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

Введенный в R2019b