DML_SPACE_TO_DEPTH1_OPERATOR_DESC構造体 (directml.h)
空間データのブロックを深さに再配置します。 演算子は、入力テンソルのコピーを出力します。この場合、高さと幅の寸法の値は深さ寸法に移動されます。
これは、 DML_DEPTH_TO_SPACE1_OPERATOR_DESCの逆変換です。
構文
struct DML_SPACE_TO_DEPTH1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT BlockSize;
DML_DEPTH_SPACE_ORDER Order;
};
メンバー
InputTensor
型: const DML_TENSOR_DESC*
読み取るテンソル。 入力テンソルのディメンションは です { Batch, Channels, Height, Width }
。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込むテンソル。 出力テンソルのディメンションは です { Batch, Channels / (BlockSize * BlockSize), Height * BlockSize, Width * BlockSize }
。
BlockSize
型: UINT
移動されるブロックの幅と高さ。
Order
「DML_DEPTH_SPACE_ORDER」を参照してください。
例
例 1. Depth-column-row order
BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW
InputTensor: (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]]]]
OutputTensor: (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]]]]
例 2. 列の行の深さの順序
BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH
InputTensor: (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]]]]
OutputTensor: (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]]]]
解説
Order パラメーターが DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW に設定されている場合、この演算子はDML_SPACE_TO_DEPTH_OPERATOR_DESCと同じです。
可用性
この演算子は で DML_FEATURE_LEVEL_2_1
導入されました。
テンソル制約
InputTensor と OutputTensor には、同じ DataType が必要です。
Tensor のサポート
DML_FEATURE_LEVEL_5_0以上
テンソル | 種類 | Dimensions | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|---|
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以上
テンソル | 種類 | Dimensions | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|---|
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 |
Header | directml.h |