共用方式為


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 / InputHeight0 < ScaleSize.Width <= UINT_MAX / InputWidth

InterpolationMode

類型: DML_INTERPOLATION_MODE

此欄位會決定用來選擇輸出圖元的插補類型。

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR。 使用 最接近鄰近 的演算法,它會為每個輸出元素選擇最接近對應圖元中心的輸入元素。
  • DML_INTERPOLATION_MODE_LINEAR。 使用 Bilinear 演算法,藉由在高度維度中執行 2 個最接近鄰近輸入元素的加權平均值,以及寬度維度中 2 個最接近的輸入元素,以計算輸出元素,總共 4 個元素。 即使輸入/輸出 DimensionCount 為 5,也是如此。 也就是說,樣本只會沿著寬度和高度維度平均,而且永遠不會沿著批次、通道或深度。

可用性

這個運算子是在 中 DML_FEATURE_LEVEL_1_0引進的。

Tensor 條件約束

InputTensorOutputTensor 必須具有相同 的 DataTypeDimensionCount

Tensor 支援

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 到 5 FLOAT32、FLOAT16
OutputTensor 輸出 4 到 5 FLOAT32、FLOAT16

規格需求

需求
標頭 directml.h