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 條件約束
- 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 |
需求
標頭 | directml.h |