структура 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 |