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 |