共用方式為


DML_DEPTH_TO_SPACE1_OPERATOR_DESC 結構 (directml.h)

重新排列 () 數據從深度到空間數據的區塊。 運算符會輸出輸入張量複本,其中深度維度中的值會移至空間區塊中的高度和寬度維度。

這是 DML_SPACE_TO_DEPTH1_OPERATOR_DESC的反向轉換。

語法

struct DML_DEPTH_TO_SPACE1_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  BlockSize;
  DML_DEPTH_SPACE_ORDER Order;
};

成員

InputTensor

類型: const DML_TENSOR_DESC*

要從中讀取的張量。 輸入 tensor 的維度為 { BatchCount, InputChannelCount, InputHeight, InputWidth }

OutputTensor

類型: const DML_TENSOR_DESC*

要寫入結果的張量。 輸出 tensor 的維度為 { BatchCount, OutputChannelCount, OutputHeight, OutputWidth },其中:

  • OutputChannelCount 會計算為 InputChannelCount / () BlockSize * BlockSize
  • OutputHeight 會計算為 InputHeight * BlockSize
  • OutputWidth 會計算為 InputWidth * BlockSize

BlockSize

類型: UINT

移動之區塊的寬度和高度。

Order

類型: DML_DEPTH_SPACE_ORDER

請參閱 DML_DEPTH_SPACE_ORDER

範例

本節中的範例全都使用下列輸入。

InputTensor: (Sizes:{1, 8, 2, 3}, DataType:UINT32)
[[[[0,   1,  2],
   [3,   4,  5]],
  [[9,  10, 11],
   [12, 13, 14]],
  [[18, 19, 20],
   [21, 22, 23]],
  [[27, 28, 29],
   [30, 31, 32]],
  [[36, 37, 38],
   [39, 40, 41]],
  [[45, 46, 47],
   [48, 49, 50]],
  [[54, 55, 56],
   [57, 58, 59]],
  [[63, 64, 65],
   [66, 67, 68]]]]

範例 1. 深度數據行數據列順序

BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
 [[[[ 0, 18,  1, 19,  2, 20],
    [36, 54, 37, 55, 38, 56],
    [ 3, 21,  4, 22,  5, 23],
    [39, 57, 40, 58, 41, 59]],
   [[ 9, 27, 10, 28, 11, 29],
    [45, 63, 46, 64, 47, 65],
    [12, 30, 13, 31, 14, 32],
    [48, 66, 49, 67, 50, 68]]]]

範例 2. 數據行數據列深度順序

BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
[[[[ 0,  9,  1, 10,  2, 11],
   [18, 27, 19, 28, 20, 29],
   [ 3, 12,  4, 13,  5, 14],
   [21, 30, 22, 31, 23, 32]],
  [[36, 45, 37, 46, 38, 47],
   [54, 63, 55, 64, 56, 65],
   [39, 48, 40, 49, 41, 50],
   [57, 66, 58, 67, 59, 68]]]]

備註

Order 設定為 DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW時DML_DEPTH_TO_SPACE1_OPERATOR_DESC 相當於 DML_DEPTH_TO_SPACE_OPERATOR_DESC

可用性

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

Tensor 條件約束

InputTensorOutputTensor 必須具有相同 的 DataType

Tensor 支援

DML_FEATURE_LEVEL_5_0和更新版本

種類 維度 支援的維度計數 支援的資料類型
InputTensor 輸入 { BatchCount、InputChannelCount、InputHeight、InputWidth } 4 FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputTensor 輸出 { BatchCount、OutputChannelCount、OutputHeight、OutputWidth } 4 FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_2_1和更新版本

種類 維度 支援的維度計數 支援的資料類型
InputTensor 輸入 { BatchCount、InputChannelCount、InputHeight、InputWidth } 4 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputTensor 輸出 { BatchCount、OutputChannelCount、OutputHeight、OutputWidth } 4 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8

規格需求

需求
最低支援的用戶端 Windows 10 組建 20348
最低支援的伺服器 Windows 10 組建 20348
標頭 directml.h

另請參閱