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
。
张量约束
InputTensor 和 OutputTensor 必须具有相同的 数据类型。
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 |