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。 使用 最接近鄰近 的演算法,它會為每個輸出元素選擇最接近對應圖元中心的輸入元素。
- DML_INTERPOLATION_MODE_LINEAR。 使用 Bilinear 演算法,藉由在高度維度中執行 2 個最接近鄰近輸入元素的加權平均值,以及寬度維度中 2 個最接近的輸入元素,以計算輸出元素,總共 4 個元素。 即使輸入/輸出 DimensionCount 為 5,也是如此。 也就是說,樣本只會沿著寬度和高度維度平均,而且永遠不會沿著批次、通道或深度。
可用性
這個運算子是在 中 DML_FEATURE_LEVEL_1_0
引進的。
Tensor 條件約束
InputTensor 和 OutputTensor 必須具有相同 的 DataType 和 DimensionCount。
Tensor 支援
張 | 種類 | 支援的維度計數 | 支援的資料類型 |
---|---|---|---|
InputTensor | 輸入 | 4 到 5 | FLOAT32、FLOAT16 |
OutputTensor | 輸出 | 4 到 5 | FLOAT32、FLOAT16 |
規格需求
需求 | 值 |
---|---|
標頭 | directml.h |