DML_MAX_POOLING1_OPERATOR_DESC結構 (directml.h)
計算在輸入張量上方滑動視窗內元素的最大值,並選擇性地傳回所選取最大值的索引。
語法
struct DML_MAX_POOLING1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputIndicesTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *WindowSize;
const UINT *StartPadding;
const UINT *EndPadding;
};
成員
InputTensor
類型:const DML_TENSOR_DESC*
如果 InputTensor.DimensionCount 為 4,則 大小的輸入張量{ BatchCount, ChannelCount, Height, Width }
,如果 InputTensor.DimensionCount 為 5,則為 { BatchCount, ChannelCount, Depth, Height, Weight }
。
OutputTensor
類型:const DML_TENSOR_DESC*
要寫入結果的輸出張量。 輸出張量的大小可以計算如下。
OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];
for (UINT i = 0; i < DimensionCount; ++i) {
UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}
OutputIndicesTensor
類型:_Maybenull_ const DML_TENSOR_DESC*
輸入張量 InputTensor 的選擇性輸出張量, 輸出量,其最大值 OutputTensor中。 這些索引值是以零起始,並將輸入張量視為連續的一維陣列。 當滑動視窗內的多個元素具有相同的值時,會忽略後續的相等值,而索引會指向第一個遇到的值。 OutputTensor 和 OutputIndicesTensor 具有相同的張量大小。
DimensionCount
類型:UINT
輸入張量 InputTensor的空間維度數目,這也對應於 WindowSize WindowSize的滑動視窗維度數目。 這個值也會決定 Strides、StartPadding和 EndPadding 數位列的大小。 當 inputTensor 為 4D 時,它應該設定為 2,而當它是 5D 張量時,則設定為 3。
Strides
類型:_Field_size_(DimensionCount) const UINT*
當 DimensionCount 設定為 2,{ Depth, Height, Width }
或設定為 3 時,滑動視窗維度的大小步幅 { Height, Width }
。
WindowSize
類型:_Field_size_(DimensionCount) const UINT*
DimensionCount 設定為 2 時,{ Height, Width }
滑動視窗的維度,或設定為 3 時 { Depth, Height, Width }
。
StartPadding
類型:_Field_size_(DimensionCount) const UINT*
要套用至輸入張量之每個空間維度開頭的填補元素數目,InputTensor。 當 dimensionCount 設定為 2,或設定為 3 時 { Depth, Height, Width }
,這些值會處於 { Height, Width }
。
EndPadding
類型:_Field_size_(DimensionCount) const UINT*
要套用至輸入張量之每個空間維度結尾的填補元素數目,InputTensor。 當 dimensionCount 設定為 2,或設定為 3 時 { Depth, Height, Width }
,這些值會處於 { Height, Width }
。
言論
當 outputIndicesTensor 設為 NULL 時,此運算符相當於 DML_MAX_POOLING_OPERATOR_DESC。
這個運算子的較新版本 DML_MAX_POOLING2_OPERATOR_DESC是在 DML_FEATURE_LEVEL_2_1
中引進的。
可用性
此運算子是在 DML_FEATURE_LEVEL_2_0
中引進的。
Tensor 條件約束
- InputTensor、OutputIndicesTensor和 OutputTensor 必須具有相同的 DimensionCount 。
- InputTensor 和 OutputTensor 必須具有相同 的 DataType。
Tensor 支援
DML_FEATURE_LEVEL_5_0和更新版本
張肌 | 類 | 支援的維度計數 | 支援的數據類型 |
---|---|---|---|
InputTensor | 輸入 | 4 到 5 | FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
OutputTensor | 輸出 | 4 到 5 | FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
OutputIndicesTensor | 選擇性輸出 | 4 到 5 | UINT64、UINT32 |
DML_FEATURE_LEVEL_3_0和更新版本
張肌 | 類 | 支援的維度計數 | 支援的數據類型 |
---|---|---|---|
InputTensor | 輸入 | 4 到 5 | FLOAT32、FLOAT16、INT8、UINT8 |
OutputTensor | 輸出 | 4 到 5 | FLOAT32、FLOAT16、INT8、UINT8 |
OutputIndicesTensor | 選擇性輸出 | 4 到 5 | UINT32 |
DML_FEATURE_LEVEL_2_0和更新版本
張肌 | 類 | 支援的維度計數 | 支援的數據類型 |
---|---|---|---|
InputTensor | 輸入 | 4 到 5 | FLOAT32,FLOAT16 |
OutputTensor | 輸出 | 4 到 5 | FLOAT32,FLOAT16 |
OutputIndicesTensor | 選擇性輸出 | 4 到 5 | UINT32 |
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 版本 2004 (10.0;組建 19041) |
支援的最低伺服器 | Windows Server 版本 2004 (10.0;組建 19041) |
標頭 | directml.h |