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*
DimensionCount
类型:UINT
输入张量 InputTensor的空间维度数,这也对应于滑动窗口 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_FEATURE_LEVEL_2_1
中引入了此运算符的较新版本 DML_MAX_POOLING2_OPERATOR_DESC。
可用性
此运算符是在 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 |