структура DML_MAX_POOLING1_OPERATOR_DESC (directml.h)
Вычисляет максимальное значение между элементами в скользящем окне по входной тензору и при необходимости возвращает индексы выбранных максимальных значений.
Синтаксис
struct DML_MAX_POOLING1_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;
};
Члены
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
Тип: _Возможноnull_ const DML_TENSOR_DESC*
Необязательный выходной тензор для входных тензоров InputTensor максимальных значений, созданных и хранящихся в OutputTensor. Эти значения индекса являются отсчитываются от нуля и обрабатывают входные тензоры как непрерывный одномерный массив. Если несколько элементов в скользящем окне имеют одно и то же значение, последующие равные значения игнорируются, а индекс указывает на первое обнаруженное значение. Как OutputTensor, так и OutputIndicesTensor имеют одинаковые размеры тензоров.
DimensionCount
Тип: UINT
Количество пространственных измерений входного тензора InputTensor, которое также соответствует количеству измерений скользящего окна WindowSize. Это значение также определяет размер , начальныхи массивов 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*
Размеры скользящего окна в
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.
Замечания
Если OutputIndicesTensor имеет значение NULL, этот оператор эквивалентен DML_MAX_POOLING_OPERATOR_DESC.
В DML_FEATURE_LEVEL_2_1
появилась более новая версия этого оператора DML_MAX_POOLING2_OPERATOR_DESC.
Наличие
Этот оператор появился в DML_FEATURE_LEVEL_2_0
.
Ограничения Tensor
- InputTensor, OutputIndicesTensorи OutputTensor должны иметь одинаковые DimensionCount.
- InputTensor и OutputTensor должны иметь одинаковые DataType.
Поддержка Tensor
DML_FEATURE_LEVEL_5_0 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
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 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Ввод | От 4 до 5 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputTensor | Выпуск | От 4 до 5 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputIndicesTensor | Необязательные выходные данные | От 4 до 5 | UINT32 |
DML_FEATURE_LEVEL_2_0 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
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 |