Compartir a través de


estructura de DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC (directml.h)

Invierte los elementos de una o varias subsecuencias de un tensor. El conjunto de subsecuencias que se va a invertir se elige en función del eje y las longitudes de secuencia proporcionados.

Sintaxis

struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *SequenceLengthsTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  Axis;
};

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor de entrada que contiene elementos que se van a invertir.

SequenceLengthsTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene un valor para cada subsecuencia que se va a invertir, lo que indica la longitud en los elementos de esa subsecuencia. Solo se invierten los elementos dentro de la longitud de la subsecuencia; los elementos restantes a lo largo del eje se copian en la salida sin cambios.

Este tensor debe tener el recuento de dimensiones y los tamaños iguales a InputTensor, excepto la dimensión especificada por el parámetro Axis . El tamaño de la dimensión Axis debe ser 1. Por ejemplo, si InputTensor tiene tamaños de {2,3,4,5}y Axis es 1, los tamaños de SequenceLengthsTensor deben ser {2,1,4,5}.

Si la longitud de una subsecuencia supera el número máximo de elementos a lo largo de ese eje, este operador se comporta como si el valor se fijara al máximo.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor de salida en el que se van a escribir los resultados. Este tensor debe tener los mismos tamaños y tipos de datos que InputTensor.

Axis

Tipo: UINT

Índice de la dimensión en la que se invierten los elementos. Este valor debe ser menor que dimensionCount del inputTensor.

Ejemplos

Ejemplo 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]]]]

Ejemplo 2. Reversificación a lo largo de un eje diferente

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]]]]

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_2_1.

Restricciones tensor

  • InputTensor, OutputTensor y SequenceLengthsTensor deben tener el mismo DimensionCount.
  • InputTensor y OutputTensor deben tener el mismo DataType.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_5_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
SequenceLengthsTensor Entrada De 1 a 8 UINT64, UINT32
OutputTensor Resultados De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_4_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
SequenceLengthsTensor Entrada De 1 a 8 UINT32
OutputTensor Resultados De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
SequenceLengthsTensor Entrada De 4 a 5 UINT32
OutputTensor Resultados De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_1 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada 4 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
SequenceLengthsTensor Entrada 4 UINT32
OutputTensor Resultados 4 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

Requisitos

   
Encabezado directml.h