Поделиться через


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

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

Синтаксис

struct DML_AVERAGE_POOLING_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  BOOL                  IncludePadding;
};

Члены

InputTensor

Тип: const DML_TENSOR_DESC*

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

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;
}

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.

IncludePadding

Тип: BOOL

Указывает, следует ли включать элементы заполнения вокруг пространственных ребер при вычислении среднего значения для всех элементов в скользящем окне. Если задано значение FALSE, элементы заполнения не учитываются как часть значения делителя усреднения вычисления.

Доступность

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

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

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

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

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные От 4 до 5 FLOAT32, FLOAT16
OutputTensor Выходные данные От 4 до 5 FLOAT32, FLOAT16

Требования

Требование Значение
Заголовок directml.h