DML_RESAMPLE_OPERATOR_DESC 结构 (directml.h)

使用比例系数计算目标张量大小,将元素从源重新采样到目标张量。 可以使用线性或近邻内插模式。 运算符支持跨多个维度的内插,而不仅仅是 2D。 因此,可以保留相同的空间大小,但可以跨通道或跨批内插。

语法

struct DML_RESAMPLE_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   ScaleCount;
  const FLOAT            *Scales;
};

成员

InputTensor

类型: const DML_TENSOR_DESC*

包含输入数据的张量。

OutputTensor

类型: const DML_TENSOR_DESC*

要向其写入输出数据的张量。

InterpolationMode

类型: DML_INTERPOLATION_MODE

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

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR。 使用 Nearest Neighbor 算法,该算法为每个输出元素选择最靠近相应像素中心的输入元素。

  • DML_INTERPOLATION_MODE_LINEAR。 使用 线性内插 算法,该算法通过计算每个维度最近 2 个相邻输入元素的加权平均值来计算输出元素。 重采样支持最多 4 个维度 (四维线性) ,其中加权平均值根据每个输出元素的总共 16 个输入元素进行计算。

ScaleCount

类型: UINT

数组 Scales 中指向的值的数目。 此值必须与 InputTensorOutputTensor 的维度计数匹配。

Scales

类型:_Field_size_ (ScaleCount) const FLOAT*

重新采样输入时要应用的缩放比例,其中缩放 > 1 纵向扩展图像, < 缩放 1 缩放该维度的图像。 请注意,刻度不需要完全 OutputSize / InputSize为 。 如果缩放后的输入大于输出绑定,则将其裁剪为输出大小。 另一方面,如果缩放后的输入小于输出绑定,则会固定输出边缘。

注解

在 中DML_FEATURE_LEVEL_2_1引入了此运算符的较新版本(DML_RESAMPLE1_OPERATOR_DESC)。

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_2_0

张量约束

InputTensorOutputTensor 必须具有相同的 DataTypeDimensionCount

Tensor 支持

DML_FEATURE_LEVEL_6_2及更高版本

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

DML_FEATURE_LEVEL_5_1 及更高版本

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

DML_FEATURE_LEVEL_2_0及更高版本

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

要求

   
最低受支持的客户端 Windows 10版本 2004 (10.0;内部版本 19041)
最低受支持的服务器 Windows Server 版本 2004 (10.0;内部版本 19041)
标头 directml.h