DML_UPSAMPLE_2D_OPERATOR_DESC 结构 (directml.h)

对输入图像进行升采样,将结果写入输出张量。 维度的顺序应为 NCHW (BatchSize、ChannelCount、Height、Width) 或 NCDHW (BatchSize、ChannelCount、Depth、Height、Width) ,但如果以不同的格式存储数据,则可以使用步幅。 与 DML_RESAMPLE_OPERATOR_DESC不同,只能对) (高度和宽度的最后 2 个维度进行采样。

如果可用,应首选 DML_RESAMPLE_OPERATOR_DESC ,因为它是更灵活的 DML_UPSAMPLE_2D_OPERATOR_DESC版本。

语法

struct DML_UPSAMPLE_2D_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_SIZE_2D            ScaleSize;
  DML_INTERPOLATION_MODE InterpolationMode;
};

成员

InputTensor

类型: const DML_TENSOR_DESC*

包含输入数据的张量。 InputTensor 的预期维度适用于 { InputBatchCount, InputChannelCount, InputHeight, InputWidth } 4D 和 { InputBatchCount, InputChannelCount, InputDepth, InputHeight, InputWidth } 5D。

OutputTensor

类型: const DML_TENSOR_DESC*

包含输入数据的张量。 OutputTensor 的预期维度适用于 { InputBatchCount, InputChannelCount, InputHeight * HeightScale, InputWidth * WidthScale } 4D 和 { InputBatchCount, InputChannelCount, InputDepth, InputHeight * HeightScale, InputWidth * WidthScale } 5D。

ScaleSize

类型: DML_SIZE_2D

向上采样输入时要应用的 UINT 类型的宽度和高度刻度。 0 < ScaleSize.Height <= UINT_MAX / InputHeight0 < ScaleSize.Width <= UINT_MAX / InputWidth

InterpolationMode

类型: DML_INTERPOLATION_MODE

此字段确定用于选择输出像素的内插类型。

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR。 使用 Nearest Neighbor 算法,该算法为每个输出元素选择最靠近相应像素中心的输入元素。
  • DML_INTERPOLATION_MODE_LINEAR。 使用 双线性 算法,该算法通过执行高度维度中 2 个最近相邻输入元素和宽度维度中 2 个最近相邻输入元素(共 4 个元素)的加权平均值来计算输出元素。 即使输入/输出 DimensionCount 为 5,也是如此。 也就是说,样本仅沿宽度和高度维度进行平均值,永远不会沿批处理、通道或深度进行。

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0

张量约束

InputTensorOutputTensor 必须具有相同的 DataTypeDimensionCount

Tensor 支持

种类 支持的维度计数 支持的数据类型
InputTensor 输入 4 到 5 FLOAT32、FLOAT16
OutputTensor 输出 4 到 5 FLOAT32、FLOAT16

要求

要求
Header directml.h