Condividi tramite


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