structure DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC (directml.h)
Inverse les éléments d’une ou plusieurs sous-séquences d’un tenseur. L’ensemble de sous-séquences à inverser est choisi en fonction des longueurs d’axe et de séquence fournies.
Syntaxe
struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Tenseur d’entrée contenant des éléments à inverser.
SequenceLengthsTensor
Type : const DML_TENSOR_DESC*
Tenseur contenant une valeur pour chaque sous-séquence à inverser, indiquant la longueur dans les éléments de cette sous-séquence. Seuls les éléments de la longueur de la sous-séquence sont inversés ; les éléments restants le long de cet axe sont copiés dans la sortie inchangée.
Ce tenseur doit avoir un nombre de dimensions et des tailles égales à inputTensor, à l’exception de la dimension spécifiée par le paramètre Axis . La taille de la dimension Axe doit être 1. Par exemple, si le InputTensor a des tailles de {2,3,4,5}
, et que Axis a la valeur 1, les tailles du SequenceLengthsTensor doivent être {2,1,4,5}
.
Si la longueur d’une sous-séquence dépasse le nombre maximal d’éléments le long de cet axe, cet opérateur se comporte comme si la valeur était limitée au maximum.
OutputTensor
Type : const DML_TENSOR_DESC*
Tenseur de sortie dans lequel écrire les résultats. Ce tenseur doit avoir les mêmes tailles et le même type de données que le inputTensor.
Axis
Type : UINT
Index de la dimension sur laquelle inverser les éléments. Cette valeur doit être inférieure à dimensionCount de l’inputTensor.
Exemples
Exemple 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]]]]
Exemple 2. Marche arrière le long d’un autre axe
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é
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_2_1
.
Contraintes tensoriels
- InputTensor, OutputTensor et SequenceLengthsTensor doivent avoir le même DimensionCount.
- InputTensor et OutputTensor doivent avoir le même DataType.
Prise en charge de Tensor
DML_FEATURE_LEVEL_5_0 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 1 à 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrée | 1 à 8 | UINT64, UINT32 |
OutputTensor | Output | 1 à 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_4_0 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 1 à 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrée | 1 à 8 | UINT32 |
OutputTensor | Output | 1 à 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 à 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrée | 4 à 5 | UINT32 |
OutputTensor | Output | 4 à 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrée | 4 | UINT32 |
OutputTensor | Output | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
Spécifications
En-tête | directml.h |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour