structure DML_SLICE_GRAD_OPERATOR_DESC (directml.h)
Calcule les gradients de rétropropagation pour Slice (voir DML_SLICE1_OPERATOR_DESC).
Rappelez-vous que DML_SLICE1_OPERATOR_DESC extrait un sous-ensemble d’un tenseur d’entrée. Avec un InputGradientTensor avec les mêmes tailles que la sortie d’un DML_SLICE1_OPERATOR_DESC équivalent, cet opérateur produit un OutputGradientTensor avec les mêmes tailles que l’entrée de DML_SLICE1_OPERATOR_DESC. Les éléments segmentés sont propagés à la sortie et tous les autres éléments sont définis sur 0.
Prenons l’exemple d’un DML_SLICE1_OPERATOR_DESC qui extrait les éléments suivants d’un tenseur :
InputTensor OutputTensor
[[a, b, c, d],
[e, f, g, h], Slice [[a, c],
[i, j, k, l], --> [i, k]]
[m, n, o, p]]
S’il fournit les mêmes entrées InputWindowOffsets/Sizes Strides/ que dans l’exemple ci-dessus, cet opérateur effectue alors la transformation suivante.
InputGradientTensor OutputGradientTensor
[[a, 0, c, 0],
[[a, c], SliceGrad [0, 0, 0, 0],
[i, k]] --> [i, 0, k, 0],
[0, 0, 0, 0]]
Syntaxe
struct DML_SLICE_GRAD_OPERATOR_DESC {
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
UINT DimensionCount;
const UINT *InputWindowOffsets;
const UINT *InputWindowSizes;
const INT *InputWindowStrides;
};
Membres
InputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de gradient entrant. Cela est généralement obtenu à partir de la sortie de la rétropropagation d’une couche précédente. En règle générale, ce tenseur a les mêmes tailles que la sortie du DML_SLICE1_OPERATOR_DESC correspondant dans la passe avant.
OutputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de sortie contenant les dégradés rétropropagés. En règle générale, ce tenseur a les mêmes tailles que l’entrée du DML_SLICE1_OPERATOR_DESC correspondant dans la passe avant.
DimensionCount
Type : UINT
Nombre d’éléments dans les tableaux InputWindowOffsets, InputWindowSizes et InputWindowStrides . Cette valeur doit être égale au DimensionCount fourni dans InputGradientTensor et OutputGradientTensor.
InputWindowOffsets
Type : _Field_size_(DimensionCount) const UINT*
Consultez InputWindowOffsets dans DML_SLICE1_OPERATOR_DESC.
InputWindowSizes
Type : _Field_size_(DimensionCount) const UINT*
Consultez InputWindowSizes dans DML_SLICE1_OPERATOR_DESC.
InputWindowStrides
Type : _Field_size_(DimensionCount) const UINT*
Consultez InputWindowStrides dans DML_SLICE1_OPERATOR_DESC.
Notez que contrairement à DML_SLICE1_OPERATOR_DESC, cet opérateur nécessite des foulées non nulles. En effet, avec une foulée nulle, il est ambigu quant à l’élément d’entrée qui doit être mappé à chaque élément de sortie et, par conséquent, la rétropropagation ne peut pas être effectuée. Comme DML_SLICE1_OPERATOR_DESC, les foulées négatives retournent la direction de la fenêtre d’entrée le long de cet axe.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_3_0
.
Contraintes tensoriels
InputGradientTensor et OutputGradientTensor doivent avoir les mêmes DataType et DimensionCount.
Prise en charge des tenseurs
DML_FEATURE_LEVEL_4_1 et versions ultérieures
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputGradientTensor | Entrée | 1 à 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputGradientTensor | Sortie | 1 à 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_1 et versions ultérieures
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputGradientTensor | Entrée | 1 à 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputGradientTensor | Sortie | 1 à 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 et versions ultérieures
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputGradientTensor | Entrée | 4 à 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputGradientTensor | Sortie | 4 à 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
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