DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC struttura (directml.h)
Inverte gli elementi di una o più sottosequenze di un tensore. Il set di sottosequenze da invertire viene scelto in base alle lunghezze dell'asse e della sequenza fornite.
Sintassi
struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
};
Members
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensore di input contenente elementi da invertire.
SequenceLengthsTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente un valore per ogni sottosequenza da invertire, denotando la lunghezza in elementi di tale sottosequenza. Solo gli elementi all'interno della lunghezza della sottosequenza vengono invertito; gli elementi rimanenti lungo l'asse vengono copiati nell'output invariato.
Questo tensore deve avere il conteggio delle dimensioni e le dimensioni uguali a InputTensor, ad eccezione della dimensione specificata dal parametro Axis . Le dimensioni della dimensione Asse devono essere 1. Ad esempio, se InputTensor ha dimensioni di {2,3,4,5}
, e Asse è 1, le dimensioni del SequenceLengthsTensor devono essere {2,1,4,5}
.
Se la lunghezza di una sottosequenza supera il numero massimo di elementi lungo tale asse, questo operatore si comporta come se il valore fosse bloccato al massimo.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensore di output in cui scrivere i risultati. Questo tensore deve avere le stesse dimensioni e tipo di dati dell'oggetto InputTensor.
Axis
Tipo: UINT
Indice della dimensione per invertire gli elementi. Questo valore deve essere minore di DimensionCount dell'oggetto InputTensor.
Esempi
Esempio 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]]]]
Esempio 2. Inversione lungo un asse diverso
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]]]]
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_1
.
Vincoli tensor
- InputTensor, OutputTensor e SequenceLengthsTensor devono avere lo stesso DimensionCount.
- InputTensor e OutputTensor devono avere lo stesso Tipo di dati.
Supporto di Tensor
DML_FEATURE_LEVEL_5_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | da 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Input | da 1 a 8 | UINT64, UINT32 |
OutputTensor | Output | da 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_4_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | da 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Input | da 1 a 8 | UINT32 |
OutputTensor | Output | da 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | da 4 a 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Input | da 4 a 5 | UINT32 |
OutputTensor | Output | da 4 a 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Input | 4 | UINT32 |
OutputTensor | Output | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
Requisiti
Intestazione | directml.h |