DML_MAX_POOLING2_OPERATOR_DESC结构 (directml.h)

计算输入张量上滑动窗口中元素的最大值,并选择性地返回所选最大值的索引。

语法

struct DML_MAX_POOLING2_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;
  const UINT            *Dilations;
};

成员

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*

OutputTensor中生成和存储的最大值的输入张量 输入张量 的可选输出张量。 这些索引值从零开始,并将输入张量视为连续的一维数组。 当滑动窗口中的多个元素具有相同的值时,将忽略以后的相等值,并且索引指向遇到的第一个值。 OutputTensorOutputIndicesTensor 具有相同的张量大小。

DimensionCount

类型:UINT

输入张量 InputTensor的空间维度数,这也对应于滑动窗口 WindowSize的维度数。 此值还确定 StridesStartPaddingEndPadding 数组的大小。 当 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 } 中。

Dilations

类型:_Field_size_(DimensionCount) const UINT*

输入张量的每个空间维度的值 InputTensor 在其中为该值的每个元素选择一个元素。 当 DimensionCount 设置为 2 或设置为 3 时 { Depth, Height, Width } 时,这些值将处于 { Height, Width } 中。

言论

DML_MAX_POOLING2_OPERATOR_DESC 取代了早期版本 DML_MAX_POOLING_OPERATOR1_DESCDilations附加常量数组。 当 Dilations 设置为 4D 输入 { 1,1 } 或 5D 输入功能的 { 1,1,1 } 时,这两个版本是等效的。

可用性

此运算符是在 DML_FEATURE_LEVEL_2_1中引入的。

Tensor 约束

  • InputTensorOutputIndicesTensorOutputTensor 必须具有相同 DimensionCount
  • InputTensorOutputTensor 必须具有相同 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_1及更高版本

张肌 支持的维度计数 支持的数据类型
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