DML_RESAMPLE_GRAD_OPERATOR_DESC 结构 (directml.h)

计算重新采样的反向传播梯度, (请参阅 ) DML_RESAMPLE1_OPERATOR_DESC

DML_RESAMPLE1_OPERATOR_DESC 使用近邻采样或双线性内插重新缩放输入张量的任意维度。 如果 InputGradientTensor 的大小与等效DML_RESAMPLE1_OPERATOR_DESC输出大小相同,则此运算符将生成与DML_RESAMPLE1_OPERATOR_DESC输入大小相同的 OutputGradientTensor

例如,请考虑一个 DML_RESAMPLE1_OPERATOR_DESC ,该DML_RESAMPLE1_OPERATOR_DESC执行最接近的缩放,其宽度为 1.5 倍,高度为 0.5 倍。

InputTensor           OutputTensor
[[1, 2],   Resample    [1, 1, 2]
 [3, 4]]      -->      

请注意,值为 1 的输入张量 (的第 0 个元素) 如何贡献输出中的两个元素,值为 2) 的第 1 个元素 (贡献输出中的一个元素,而值为 3 和 4 的第 2 个和第 3 个元素 () 没有输出元素。

相应的 DML_RESAMPLE_GRAD_OPERATOR_DESC 将执行以下操作。

InputGradientTensor           OutputGradientTensor
    [4, 5, 6]      ResampleGrad    [[9, 6],
                       -->          [0, 0]]

请注意,OutputGradientTensor 中的值表示在原始 DML_RESAMPLE1_OPERATOR_DESC 运算符期间该元素对 OutputTensor 的加权贡献。

语法

struct DML_RESAMPLE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputGradientTensor;
  const DML_TENSOR_DESC  *OutputGradientTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   DimensionCount;
  const FLOAT            *Scales;
  const FLOAT            *InputPixelOffsets;
  const FLOAT            *OutputPixelOffsets;
};

成员

InputGradientTensor

类型: const DML_TENSOR_DESC*

传入的渐变张量。 这通常是从上一层的反向传播的输出中获取的。 通常,此张量的大小与正向传递中相应DML_RESAMPLE1_OPERATOR_DESC输出大小相同。

OutputGradientTensor

类型: const DML_TENSOR_DESC*

包含反向传播渐变的输出张量。 通常,此张量的大小与正向传递中相应DML_RESAMPLE1_OPERATOR_DESC输入大小相同。

InterpolationMode

类型: DML_INTERPOLATION_MODE

请参阅 DML_RESAMPLE1_OPERATOR_DESC 中的 InterpolationMode

DimensionCount

类型: UINT

ScalesInputPixelOffsetsOutputPixelOffsets 数组中的元素数。 此值必须等于 InputGradientTensor 和 OutputGradientTensor 中提供的 DimensionCount

Scales

类型:_Field_size_ (DimensionCount) const FLOAT*

请参阅 DML_RESAMPLE1_OPERATOR_DESC 中的缩放

InputPixelOffsets

类型:_Field_size_ (DimensionCount) const FLOAT*

请参阅 DML_RESAMPLE1_OPERATOR_DESC 中的 InputPixelOffsets

OutputPixelOffsets

类型:_Field_size_ (DimensionCount) const FLOAT*

请参阅 DML_RESAMPLE1_OPERATOR_DESC 中的 OutputPixelOffsets

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_3_0

张量约束

InputGradientTensorOutputGradientTensor 必须具有相同的 DataTypeDimensionCount

Tensor 支持

DML_FEATURE_LEVEL_5_1 及更高版本

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

DML_FEATURE_LEVEL_3_0及更高版本

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

要求

   
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 directml.h