структура DML_MAX_POOLING2_OPERATOR_DESC (directml.h)

Вычисляет максимальное значение для элементов в скользящем окне над входным тензором и при необходимости возвращает индексы выбранных максимальных значений.

Синтаксис

struct DML_MAX_POOLING2_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  const DML_TENSOR_DESC *OutputIndicesTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  const UINT            *Dilations;
};

Члены

InputTensor

Тип: const DML_TENSOR_DESC*

Входной тензор размеров{ BatchCount, ChannelCount, Height, Width } , если значение InputTensor.DimensionCount равно 4, а { BatchCount, ChannelCount, Depth, Height, Weight } значение InputTensor.DimensionCount равно 5.

OutputTensor

Тип: const DML_TENSOR_DESC*

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

OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];

for (UINT i = 0; i < DimensionCount; ++i) {
  UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
  OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}

OutputIndicesTensor

Тип: _Maybenull_ const DML_TENSOR_DESC*

Необязательный выходной тензор индексов входного тензора InputTensor максимальных значений, созданных и хранящихся в OutputTensor. Эти значения индекса отсчитываются от нуля и рассматривают входной тензор как непрерывный одномерный массив. Если несколько элементов в скользящем окне имеют одинаковое значение, последующие равные значения игнорируются, а индекс указывает на первое обнаруженное значение. И OutputTensor , и OutputIndicesTensor имеют одинаковые размеры тензоров.

DimensionCount

Тип: UINT

Количество пространственных измерений входного тензора InputTensor, которое также соответствует количеству измерений скользящего окна WindowSize. Это значение также определяет размер массивов Strides, StartPadding и EndPadding . Он должен иметь значение 2, если InputTensor имеет 4D, и 3, если это 5D-тензор.

Strides

Тип: _Field_size_(DimensionCount) const UINT*

Шаги для размеров скользящего окна размеров { Height, Width } , если DimensionCount имеет значение 2 или { Depth, Height, Width } если задано значение 3.

WindowSize

Тип: _Field_size_(DimensionCount) const UINT*

Размеры скользящего окна в , { Height, Width } когда DimensionCount имеет значение 2 или { Depth, Height, Width } если задано значение 3.

StartPadding

Тип: _Field_size_(DimensionCount) const UINT*

Количество элементов заполнения, применяемых к началу каждого пространственного измерения входного тензора InputTensor. Значения находятся в { Height, Width } , если DimensionCount имеет значение 2 или { Depth, Height, Width } если задано значение 3.

EndPadding

Тип: _Field_size_(DimensionCount) const UINT*

Количество элементов заполнения, применяемых к концу каждого пространственного измерения входного тензора InputTensor. Значения находятся в { Height, Width } , если DimensionCount имеет значение 2 или { Depth, Height, Width } если задано значение 3.

Dilations

Тип: _Field_size_(DimensionCount) const UINT*

Значения для каждого пространственного измерения входного тензора InputTensor , по которому элемент в скользящем окне выбирается для каждого элемента этого значения. Значения находятся в { Height, Width } , если DimensionCount имеет значение 2 или { Depth, Height, Width } если задано значение 3.

Комментарии

DML_MAX_POOLING2_OPERATOR_DESC заменяет более раннюю версию DML_MAX_POOLING_OPERATOR1_DESC дополнительными расширениями массива констант. Две версии эквивалентны, если параметр Dilations имеет значение { 1,1 } для 4D-входных данных или { 1,1,1 } для функций 5D-ввода.

Доступность

Этот оператор появился в DML_FEATURE_LEVEL_2_1.

Ограничения тензоров

  • InputTensor, OutputIndicesTensor и OutputTensor должны иметь одинаковые значения DimensionCount.
  • InputTensor и OutputTensor должны иметь один и тот же тип DataType.

Поддержка тензоров

DML_FEATURE_LEVEL_5_0 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные от 4 до 5 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Выходные данные от 4 до 5 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputIndicesTensor Необязательные выходные данные от 4 до 5 UINT64, UINT32

DML_FEATURE_LEVEL_3_0 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные от 4 до 5 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Выходные данные от 4 до 5 FLOAT32, FLOAT16, INT8, UINT8
OutputIndicesTensor Необязательные выходные данные от 4 до 5 UINT32

DML_FEATURE_LEVEL_2_1 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные от 4 до 5 FLOAT32, FLOAT16
OutputTensor Выходные данные от 4 до 5 FLOAT32, FLOAT16
OutputIndicesTensor Необязательные выходные данные от 4 до 5 UINT32

Требования

   
Минимальная версия клиента Windows 10 версии 2004 (10.0; Сборка 19041)
Минимальная версия сервера Windows Server версии 2004 (10.0; Сборка 19041)
Верхняя часть directml.h