DML_LP_POOLING1_OPERATOR_DESC 结构 (directml.h)
通过输入张量计算滑动窗口中元素的 LP 规范化值。
重要
此 API 作为 DirectML 独立可再发行组件包的一部分提供(请参阅 Microsoft.AI.DirectML 版本 1.13 及更高版本。 另请参阅 DirectML 版本历史记录。
语法
struct DML_LP_POOLING1_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT DimensionCount;
_Field_size_(DimensionCount) const UINT* Strides;
_Field_size_(DimensionCount) const UINT* WindowSize;
_Field_size_(DimensionCount) const UINT* StartPadding;
_Field_size_(DimensionCount) const UINT* EndPadding;
_Field_size_(DimensionCount) const UINT* Dilations;
UINT P;
};
成员
InputTensor
类型:const DML_TENSOR_DESC*
具有 4D 大小 { BatchCount, ChannelCount, Height, Width }
和 5D 大小 { 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;
}
DimensionCount
类型:UINT
输入张量 InputTensor 的空间维度数,也对应于滑动窗口 WindowSize 的维度数。 此值还可用于确定 Strides、StartPadding 和 EndPadding 数组的大小。 当 InputTensor 为 4D 张量时,应设置为 2,当它为 5D 张量时,应设置为 3。
Strides
类型:_Field_size_(DimensionCount) const UINT*
一个数组,包含当 DimensionCount 设置为 2 时大小为 { Height, Width }
的滑动窗口维度的步幅,或者设置为 3 时大小为 { Depth, 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 时这些值在 { Height, Width }
中,或者设置为 3 时这些值在 { Depth, Height, Width }
中。
EndPadding
类型:_Field_size_(DimensionCount) const UINT*
一个数组,包含要应用于输入张量 InputTensor 的每个空间维度的末尾的填充元素数。 当 DimensionCount 设置为 2 时这些值在 { Height, Width }
中,或者设置为 3 时这些值在 { Depth, Height, Width }
中。
Dilations
类型:_Field_size_(DimensionCount) const UINT*
输入张量 InputTensor 的每个空间维度的值,在该维度中为该值的每个元素选择滑动窗口中的元素。 当 DimensionCount 设置为 2 时这些值在 { Height, Width }
中,或者设置为 3 时这些值在 { Depth, Height, Width }
中。
P
类型:UINT
LP 规范化函数 Y = (X1^P + X2^P + ... + Xn^P) ^ (1/P)
中 P
变量的值,其中 X1
至 Xn
表示滑动窗口中的每个值。 在常见用例中,此值设置为 1 或 2,分别表示 L1 或 L2 规范化函数。
注解
DML_LP_POOLING1_OPERATOR_DESC 类似于 DML_LP_POOLING_OPERATOR_DESC,但还有一个额外的常量数组 Dilations。 当为 4D 输入特征将 Dilations 设置为 { 1,1 } 时,或为 5D 输入特征将其设置为 { 1,1,1 } 时,DML_LP_POOLING1_OPERATOR_DESC 相当于 DML_LP_POOLING_OPERATOR_DESC。
可用性
此运算符是在 DML_FEATURE_LEVEL_6_2 中引入的。
张量约束
InputTensor 和 OutputTensor 必须具有相同的 DataType 和 DimensionCount。
张量支持
张量 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 到 5 | FLOAT32、FLOAT16 |
OutputTensor | 输出 | 4 到 5 | FLOAT32、FLOAT16 |
要求
页眉 | directml.h |