共用方式為


DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC 結構 (directml.h)

反轉一個或多個 tensor 子序列 的專案。 系統會根據提供的座標軸和序列長度來選擇要反轉的子序列集合。

語法

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的維度計數和大小。 Axis維度的大小必須是 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 引進的。

Tensor 條件約束

  • 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

需求

   
標頭 directml.h