DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC構造体 (directml.h)
テンソルの 1 つ以上の サブシーケンス の要素を反転します。 反転するサブシーケンスのセットは、指定された軸とシーケンスの長さに基づいて選択されます。
構文
struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
};
メンバー
InputTensor
型: const DML_TENSOR_DESC*
反転する要素を含む入力テンソル。
SequenceLengthsTensor
型: const DML_TENSOR_DESC*
逆にされる各サブシーケンスの値を含むテンソル。そのサブシーケンスの要素の長さを示します。 サブシーケンスの長さ内の要素のみが反転されます。その軸に沿った残りの要素は変更されずに出力にコピーされます。
このテンソルには、Axis パラメーターで指定されたディメンションを除き、ディメンション数と InputTensor と等しいサイズが必要です。 軸ディメンションのサイズは 1 である必要があります。 たとえば、InputTensor のサイズが で{2,3,4,5}
、Axis が 1 の場合、SequenceLengthsTensor のサイズは である{2,1,4,5}
必要があります。
サブシーケンスの長さが軸に沿った要素の最大数を超える場合、この演算子は値が最大値にクランプされたかのように動作します。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む出力テンソル。 このテンソルのサイズとデータ型は 、InputTensor と同じである必要があります。
Axis
型: UINT
要素を反転させるディメンションのインデックス。 この値は、 InputTensor の DimensionCount より小さくする必要があります。
例
例 1
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]]]
SequenceTensor: (Sizes:{1,1,3,1}, DataType:UINT32)
[[[[2],
[4],
[3]]]]
Axis: 3
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[ 2, 1, 3, 4],
[ 8, 7, 6, 5],
[11, 10, 9, 12]]]]
例 2. 異なる軸に沿った反転
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]]]
SequenceTensor: (Sizes:{1,1,1,4}, DataType:UINT32)
[[[[2, 3, 1, 0]]]]
Axis: 2
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[5, 10, 3, 4], // Notice that sequence lengths of 1 and 0 are effective nops
[1, 6, 7, 8],
[9, 2, 11, 12]]]]
可用性
この演算子は で DML_FEATURE_LEVEL_2_1
導入されました。
テンソル制約
- InputTensor、 OutputTensor、 SequenceLengthsTensor は、同じ DimensionCount を持つ必要があります。
- InputTensor と OutputTensor には、同じ DataType が必要です。
Tensor のサポート
DML_FEATURE_LEVEL_5_0以上
テンソル | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 1 から 8 | FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
SequenceLengthsTensor | 入力 | 1 から 8 | UINT64、UINT32 |
OutputTensor | 出力 | 1 から 8 | FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8 |
DML_FEATURE_LEVEL_4_0以上
テンソル | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 1 から 8 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
SequenceLengthsTensor | 入力 | 1 から 8 | UINT32 |
OutputTensor | 出力 | 1 から 8 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
DML_FEATURE_LEVEL_3_0以上
テンソル | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 4 から 5 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
SequenceLengthsTensor | 入力 | 4 から 5 | UINT32 |
OutputTensor | 出力 | 4 から 5 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
DML_FEATURE_LEVEL_2_1以上
テンソル | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 4 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
SequenceLengthsTensor | 入力 | 4 | UINT32 |
OutputTensor | 出力 | 4 | FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8 |
要件
Header | directml.h |