次の方法で共有


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導入されました。

テンソル制約

  • InputTensorOutputTensorSequenceLengthsTensor は、同じ DimensionCount を持つ必要があります。
  • InputTensorOutputTensor には、同じ 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