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*

包含 backpropagated 漸層的輸出張量。 一般而言,這個張量的大小與正向中對應DML_MAX_POOLING2_OPERATOR_DESC的輸入大小相同。

DimensionCount

類型: UINT

StridesWindowSizeStartPadding、EndPaddingDilations陣列中的元素數目。 此值必須等於 InputTensor 的 DimensionCount - 2) (空間維度計數。 由於這個運算子只支援 4D 張量,此參數的唯一有效值為 2。

Strides

類型:_Field_size_ (DimensionCount) const UINT*

請參閱DML_MAX_POOLING2_OPERATOR_DESC中的步進

WindowSize

類型:_Field_size_ (DimensionCount) const UINT*

請參閱DML_MAX_POOLING2_OPERATOR_DESC中的WindowSize

StartPadding

類型:_Field_size_ (DimensionCount) const UINT*

請參閱DML_MAX_POOLING2_OPERATOR_DESC中的StartPadding

EndPadding

類型:_Field_size_ (DimensionCount) const UINT*

請參閱DML_MAX_POOLING2_OPERATOR_DESC中的EndPadding

Dilations

類型:_Field_size_ (DimensionCount) const UINT*

請參閱DML_MAX_POOLING2_OPERATOR_DESC中的聽寫

可用性

這個運算子是在 中 DML_FEATURE_LEVEL_3_0 引進的。

Tensor 條件約束

  • InputGradientTensorInputTensorOutputGradientTensor 必須具有相同 的 DataTypeDimensionCount
  • InputTensorOutputGradientTensor 必須具有相同 的大小

Tensor 支援

DML_FEATURE_LEVEL_4_0和更新版本

種類 維度 支援的維度計數 支援的資料類型
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和更新版本

種類 維度 支援的維度計數 支援的資料類型
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