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
Strides、WindowSize、StartPadding、EndPadding和Dilations陣列中的元素數目。 此值必須等於 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 條件約束
- InputGradientTensor、 InputTensor和 OutputGradientTensor 必須具有相同 的 DataType 和 DimensionCount。
- InputTensor 和 OutputGradientTensor 必須具有相同 的大小。
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 |