maxpool

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

Описание

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

Примечание

Эта функция применяет максимальную операцию объединения к dlarray данные. Если вы хотите применить максимальное объединение в layerGraph объект или Layer массив, используйте один из следующих слоев:

пример

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

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

пример

___ = maxpool(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение". Например, 'Stride',3 устанавливает шаг операции объединения.

пример

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

пример

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

Примеры

свернуть все

Объедините данные к максимальным значениям более чем две пространственных размерности.

Создайте входные данные как одно наблюдение за случайными значениями с высотой и шириной шесть и один канал.

height = 6;
width = 6;
channels = 1;
observations = 1;

X = rand(height,width,channels,observations);
dlX = dlarray(X,'SSCB')
dlX = 
  6(S) × 6(S) × 1(C) × 1(B) dlarray

    0.1781    0.8819    0.1564    0.4820    0.2518    0.7302
    0.1280    0.6692    0.8555    0.1206    0.2904    0.3439
    0.9991    0.1904    0.6448    0.5895    0.6171    0.5841
    0.1711    0.3689    0.3763    0.2262    0.2653    0.1078
    0.0326    0.4607    0.1909    0.3846    0.8244    0.9063
    0.5612    0.9816    0.4283    0.5830    0.9827    0.8797

Объедините данные к максимальным значениям по объединению областей размера 2 использование шага 2.

dlY = maxpool(dlX,2,'Stride',2)
dlY = 
  3(S) × 3(S) × 1(C) × 1(B) dlarray

    0.8819    0.8555    0.7302
    0.9991    0.6448    0.6171
    0.9816    0.5830    0.9827

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

Создайте входные данные как бесформатный dlarray. Данные содержат одно наблюдение за случайными значениями с высотой четыре, шириной шесть, и один канал.

height = 4;
width = 6;
channels = 1;
observations = 1;

X = rand(height,width,channels,observations);
dlX = dlarray(X)
dlX = 
  4×6 dlarray

    0.8147    0.6324    0.9575    0.9572    0.4218    0.6557
    0.9058    0.0975    0.9649    0.4854    0.9157    0.0357
    0.1270    0.2785    0.1576    0.8003    0.7922    0.8491
    0.9134    0.5469    0.9706    0.1419    0.9595    0.9340

Объедините данные к глобальному максимальному значению. Задайте формат размерности входных данных.

dlY = maxpool(dlX,'global','DataFormat','SSCB')
dlY = 
  1×1 dlarray

    0.9706

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

свернуть все

Входные данные в виде dlarray с или без меток размерности. Когда dlX не отформатированный dlarray, необходимо задать формат этикетки размерности с помощью 'DataFormat',FMT.

Объединение действий на размерностях, которые вы задаете как пространственные размерности с помощью 'S' метка размерности. dlX должен иметь по крайней мере один 'S' размерность. Можно задать до трех измерений в dlX как 'S' размерности. maxpool операция делит данные вдоль каждого 'S' размерность в области задана poolsize. Функция вычисляет максимум всех значений в каждой области объединения.

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

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

Пример 3

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

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

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

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

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

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

  • 'C' — Канал

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

  • 'T' — Время (например, последовательности)

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

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

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

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

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

Размер шага для того, чтобы пересечь входные данные в виде разделенной запятой пары, состоящей из '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' 0.

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

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

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

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

свернуть все

Объединенные данные, возвращенные как dlarray. Выход dlY имеет тот же базовый тип данных как вход 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