directml.h) (DML_RESAMPLE1_OPERATOR_DESC 结构
使用比例系数计算目标张量大小,将元素从源重新采样到目标张量。 可以使用线性或最近邻内插模式。 运算符支持跨多个维度(而不仅仅是 2D)进行内插。 因此,可以保留相同的空间大小,但跨通道或跨批内插。 输入和输出坐标之间的关系如下所示。
OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset
语法
struct DML_RESAMPLE1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
DML_INTERPOLATION_MODE InterpolationMode;
UINT DimensionCount;
const FLOAT *Scales;
const FLOAT *InputPixelOffsets;
const FLOAT *OutputPixelOffsets;
};
成员
InputTensor
类型: const DML_TENSOR_DESC*
包含输入数据的张量。
OutputTensor
类型: const DML_TENSOR_DESC*
要向其写入输出数据的张量。
InterpolationMode
此字段确定用于选择输出像素的内插类型。
DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR。 使用 最近邻 算法,该算法为每个输出元素选择最接近相应像素中心的输入元素。
DML_INTERPOLATION_MODE_LINEAR。 使用 线性内插 算法,该算法通过计算每个维度 2 个最接近的相邻输入元素的加权平均值来计算输出元素。 重采样最多支持 4 个维度 (四条线性) ,其中加权平均值是在每个输出元素总共 16 个输入元素的基础上计算的。
DimensionCount
类型: UINT
Scales、InputPixelOffsets 和 OutputPixelOffsets 指向的数组中的值数。 此值必须与 InputTensor 和 OutputTensor 的维度计数匹配。
Scales
类型:_Field_size_ (DimensionCount) const FLOAT*
重新采样输入时要应用的缩放,其中缩放 > 1 纵向扩展图像, < 缩放 1 缩放该维度的图像。 请注意,刻度不需要完全 OutputSize / InputSize
为 。 如果缩放后的输入大于输出绑定,则将其裁剪为输出大小。 另一方面,如果缩放后的输入小于输出绑定,则会固定输出边缘。
InputPixelOffsets
类型:_Field_size_ (DimensionCount) const FLOAT*
在重新采样之前应用于输入像素的偏移量。 如果此值为 0
,则使用像素的左上角而不是其中心,这通常不会给出预期的结果。 若要使用像素中心重新采样图像,并获取 与DML_RESAMPLE_OPERATOR_DESC相同的行为,此值必须为 0.5
。
OutputPixelOffsets
类型:_Field_size_ (DimensionCount) const FLOAT*
重新采样后应用于输出像素的偏移量。 如果此值为 0
,则使用像素的左上角而不是其中心,这通常不会给出预期的结果。 若要使用像素中心重新采样图像,并获取 与DML_RESAMPLE_OPERATOR_DESC相同的行为,此值必须为 -0.5
。
注解
当 InputPixelOffsets 设置为 0.5,OutputPixelOffsets 设置为 -0.5 时,此运算符等效于DML_RESAMPLE_OPERATOR_DESC。
可用性
此运算符是在 中 DML_FEATURE_LEVEL_2_1
引入的。
张量约束
InputTensor 和 OutputTensor 必须具有相同的 DataType 和 DimensionCount。
张量支持
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_1 及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 | FLOAT32、FLOAT16 |
OutputTensor | 输出 | 4 | FLOAT32、FLOAT16 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
标头 | directml.h |