DML_DEPTH_TO_SPACE_OPERATOR_DESC 结构 (directml.h)

将 (将) 数据从深度重新排列为空间数据块。 运算符输出输入张量的副本,其中深度维度的值在空间块中移动到高度和宽度维度。

这是 DML_SPACE_TO_DEPTH_OPERATOR_DESC的反转换。

语法

struct DML_DEPTH_TO_SPACE_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  BlockSize;
};

成员

InputTensor

类型: const DML_TENSOR_DESC*

要从中读取的张量。 输入张量维度为 { BatchCount, InputChannelCount, InputHeight, InputWidth }

OutputTensor

类型: const DML_TENSOR_DESC*

要向其写入结果的张量。 输出张量维度为 { BatchCount, OutputChannelCount, OutputHeight, OutputWidth },其中:

  • OutputChannelCount 计算为 InputChannelCount/ (BlockSize * BlockSize) 。
  • OutputHeight 计算为 InputHeight * BlockSize
  • OutputWidth 计算为 InputWidth * BlockSize

BlockSize

类型: UINT

要移动的块的宽度和高度。

示例

BlockSize: 2
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]]]]

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]]]]

注解

在 中DML_FEATURE_LEVEL_2_1引入了此运算符的较新版本(DML_DEPTH_TO_SPACE1_OPERATOR_DESC)。

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0

张量约束

InputTensorOutputTensor 必须具有相同的 数据类型

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

DML_FEATURE_LEVEL_1_0 及更高版本

种类 维度 支持的维度计数 支持的数据类型
InputTensor 输入 { BatchCount, InputChannelCount, InputHeight, InputWidth } 4 FLOAT32、FLOAT16
OutputTensor 输出 { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } 4 FLOAT32、FLOAT16

要求

要求
Header directml.h

另请参阅