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

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

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

InputTensor             OutputTensor    IndicesTensor
[[1, 2, 3],   MaxPool    [[4, 4],        [[4, 4],
 [2, 4, 2],     -->       [6, 7]]         [7, 8]]
 [5, 6, 7]]

Самый большой элемент каждого окна 2x2 во входном тензоре создает один элемент выходных данных. Ниже приведен пример выходных данных DML_MAX_POOLING_GRAD_OPERATOR_DESC с учетом аналогичных параметров.

InputTensor   InputGradientTensor            OutputGradientTensor
[[1, 2, 3],       [[1, 2],     MaxPoolGrad   [[0, 0, 0],
 [2, 4, 2],        [4, 5]]         -->        [0, 3, 0],
 [5, 6, 7]]                                   [0, 4, 5]]

Фактически этот оператор использует InputTensor для определения индекса самого большого элемента из каждого окна и распределяет значения InputGradientTensor в OutputGradientTensor на основе этих индексов. Если индексы перекрываются, значения суммируются. Все выходные элементы без ссылок обнуляются.

В случае привязки (когда более одного элемента в окне имеют одинаковое максимальное значение) выбирается элемент с наименьшим логическим индексом.

Синтаксис

struct DML_MAX_POOLING_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  const UINT            *Dilations;
};

Члены

InputTensor

Тип: const DML_TENSOR_DESC*

Тензор входной функции. Обычно это тот же тензор, который был предоставлен в качестве inputtensor для DML_MAX_POOLING2_OPERATOR_DESC в переадресации.

InputGradientTensor

Тип: const DML_TENSOR_DESC*

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

OutputGradientTensor

Тип: const DML_TENSOR_DESC*

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

DimensionCount

Тип: UINT

Количество элементов в массивах Strides, WindowSize, StartPadding, EndPadding и Dilations . Это значение должно равняться количеству пространственных измерений (InputTensor's DimensionCount - 2). Так как этот оператор поддерживает только 4D-тензоры, единственным допустимым значением для этого параметра является 2.

Strides

Тип: _Field_size_(DimensionCount) const UINT*

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

WindowSize

Тип: _Field_size_(DimensionCount) const UINT*

См . раздел WindowSize в DML_MAX_POOLING2_OPERATOR_DESC.

StartPadding

Тип: _Field_size_(DimensionCount) const UINT*

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

EndPadding

Тип: _Field_size_(DimensionCount) const UINT*

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

Dilations

Тип: _Field_size_(DimensionCount) const UINT*

См. раздел Dilations in DML_MAX_POOLING2_OPERATOR_DESC.

Доступность

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

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

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

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

DML_FEATURE_LEVEL_4_0 и выше

Тензор Kind Измерения Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } От 4 до 5 FLOAT32, FLOAT16
InputGradientTensor Входные данные { BatchCount, ChannelCount, [OutputDepth], OutputHeight, OutputWidth } От 4 до 5 FLOAT32, FLOAT16
OutputGradientTensor Выходные данные { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } От 4 до 5 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 и выше

Тензор Kind Измерения Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16
InputGradientTensor Входные данные { BatchCount, ChannelCount, OutputHeight, OutputWidth } 4 FLOAT32, FLOAT16
OutputGradientTensor Выходные данные { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16

Требования

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