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 / InputHeight
和 0 < ScaleSize.Width <= UINT_MAX / InputWidth
。
InterpolationMode
此字段确定用于选择输出像素的内插类型。
- DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR。 使用 Nearest Neighbor 算法,该算法为每个输出元素选择最靠近相应像素中心的输入元素。
- DML_INTERPOLATION_MODE_LINEAR。 使用 双线性 算法,该算法通过执行高度维度中 2 个最近相邻输入元素和宽度维度中 2 个最近相邻输入元素(共 4 个元素)的加权平均值来计算输出元素。 即使输入/输出 DimensionCount 为 5,也是如此。 也就是说,样本仅沿宽度和高度维度进行平均值,永远不会沿批处理、通道或深度进行。
可用性
此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0
。
张量约束
InputTensor 和 OutputTensor 必须具有相同的 DataType 和 DimensionCount。
Tensor 支持
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 到 5 | FLOAT32、FLOAT16 |
OutputTensor | 输出 | 4 到 5 | FLOAT32、FLOAT16 |
要求
要求 | 值 |
---|---|
Header | directml.h |