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


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

Вычисляет градиенты обратного распространения для среднего пула (см . DML_AVERAGE_POOLING_OPERATOR_DESC).

Рассмотрим DML_AVERAGE_POOLING_OPERATOR_DESC 2x2 без заполнения и шага 1, который выполняет следующие действия.

InputTensor             OutputTensor
[[[[1, 2, 3],   AvgPool  [[[[3, 4],
   [4, 5, 6],     -->       [6, 7]]]]
   [7, 8, 9]]]]

Каждое окно 2x2 во входном тензоре усреднено для создания одного элемента выходных данных (считывание нули для элементов за пределами края). Ниже приведен пример выходных данных DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC с учетом аналогичных параметров.

InputGradientTensor            OutputGradientTensor
  [[[[1, 2],     AvgPoolGrad  [[[[0.25, 0.75, 0.5],
     [3, 4]]]]       -->         [   1,  2.5, 1.5],
                                 [0.75, 1.75,   1]]]]

Обратите внимание, что значения в OutputGradientTensor представляют взвешанные вклады этого элемента в OutputTensor во время исходного оператора DML_AVERAGE_POOLING_OPERATOR_DESC .

Синтаксис

struct DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  BOOL                  IncludePadding;
};

Члены

InputGradientTensor

Тип: const DML_TENSOR_DESC*

Тензор входящего градиента. Обычно это получается из выходных данных обратного распространения предыдущего слоя. Как правило, этот тензор имеет те же размеры, что и выходные данные соответствующего DML_AVERAGE_POOLING_OPERATOR_DESC на переднем проходе.

OutputGradientTensor

Тип: const DML_TENSOR_DESC*

Выходной тензор, содержащий обратные градиенты. Как правило, этот тензор имеет те же размеры, что и входные данные соответствующего DML_AVERAGE_POOLING_OPERATOR_DESC на переднем проходе.

DimensionCount

Тип: UINT

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

Strides

Тип: _Field_size_(DimensionCount) const UINT*

См. раздел Шаги в DML_AVERAGE_POOLING_OPERATOR_DESC.

WindowSize

Тип: _Field_size_(DimensionCount) const UINT*

См . раздел WindowSize in DML_AVERAGE_POOLING_OPERATOR_DESC.

StartPadding

Тип: _Field_size_(DimensionCount) const UINT*

См. раздел StartPadding в DML_AVERAGE_POOLING_OPERATOR_DESC.

EndPadding

Тип: _Field_size_(DimensionCount) const UINT*

См . раздел EndPadding в DML_AVERAGE_POOLING_OPERATOR_DESC.

IncludePadding

Тип: BOOL

См . раздел IncludePadding в DML_AVERAGE_POOLING_OPERATOR_DESC.

Доступность

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

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

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

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

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

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть directml.h