Structure DML_RESAMPLE_GRAD1_OPERATOR_DESC (directml.h)
Calcule les gradients de rétropropagation pour DML_RESAMPLE2_OPERATOR_DESC.
DML_RESAMPLE2_OPERATOR_DESC redimensionne les dimensions arbitraires du tenseur d’entrée à l’aide de l’échantillonnage le plus proche voisin ou de l’interpolation bilinéaire. Si l’on a un InputGradientTensor avec les mêmes tailles que la sortie d’un DML_RESAMPLE2_OPERATOR_DESC équivalent, cet opérateur produit alors un OutputGradientTensor avec les mêmes tailles que l’entrée du DML_RESAMPLE2_OPERATOR_DESC.
Prenons l’exemple d’un DML_RESAMPLE2_OPERATOR_DESC qui effectue une mise à l’échelle du plus proche voisin 1,5x dans la largeur et 0,5x dans la hauteur :
InputTensor OutputTensor
[[1, 2], Resample [1, 1, 2]
[3, 4]] -->
Notez comment le 0e élément du tenseur d’entrée (avec la valeur 1) contribue à deux éléments dans la sortie ; le 1er élément (avec la valeur 2) contribue à un élément dans la sortie ; et les 2e et 3e éléments (avec les valeurs 3 et 4) ne contribuent à aucun élément de la sortie.
Les DML_RESAMPLE_GRAD1_OPERATOR_DESC correspondantes effectuent les opérations suivantes :
InputGradientTensor OutputGradientTensor
[4, 5, 6] ResampleGrad [[9, 6],
--> [0, 0]]
Notez que les valeurs de OutputGradientTensor représentent les contributions pondérées de cet élément à l’opérateur OutputTensor pendant l’opérateur de DML_RESAMPLE2_OPERATOR_DESC d’origine.
Important
Cette API est disponible dans le cadre du package redistribuable autonome DirectML (voir Microsoft.AI.DirectML version 1.9 et ultérieures). Consultez également l’historique des versions DirectML.
Syntaxe
struct DML_RESAMPLE_GRAD1_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputGradientTensor;
const DML_TENSOR_DESC* OutputGradientTensor;
DML_INTERPOLATION_MODE InterpolationMode;
DML_AXIS_DIRECTION RoundingDirection;
UINT DimensionCount;
_Field_size_(DimensionCount) const FLOAT* Scales;
_Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
_Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets;
};
Membres
InputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de gradient entrant. Cela est généralement obtenu à partir de la sortie de rétropropagation d’une couche précédente. En règle générale, ce tenseur aurait les mêmes tailles que la sortie de la DML_RESAMPLE2_OPERATOR_DESC correspondante dans le passage avant.
OutputGradientTensor
Type : const DML_TENSOR_DESC*
Un tenseur de sortie contenant les gradients rétropropagés. En règle générale, ce tenseur aurait les mêmes tailles que l’entrée de la DML_RESAMPLE2_OPERATOR_DESC correspondante dans le passage avant.
InterpolationMode
Type : DML_INTERPOLATION_MODE
Consultez DML_RESAMPLE2_OPERATOR_DESC::InterpolationMode.
RoundingDirection
Type : DML_AXIS_DIRECTION
Consultez DML_RESAMPLE2_OPERATOR_DESC::RoundingDirection.
DimensionCount
Type : UINT
Nombre d’éléments dans les tableaux Scales, InputPixelOffsets et OutputPixelOffsets. Cette valeur doit être égale à la valeur DimensionCount fournie dans InputGradientTensor et OutputGradientTensor.
Scales
Type : _Field_size_(DimensionCount) const FLOAT*
Consultez DML_RESAMPLE2_OPERATOR_DESC::Scales.
InputPixelOffsets
Type : _Field_size_(DimensionCount) const FLOAT*
Consultez DML_RESAMPLE2_OPERATOR_DESC::InputPixelOffsets.
OutputPixelOffsets
Type : _Field_size_(DimensionCount) const FLOAT*
Consultez DML_RESAMPLE2_OPERATOR_DESC::OutputPixelOffsets.
Notes
Cet opérateur équivaut à DML_RESAMPLE_GRAD_OPERATOR_DESC lorsque InterpolationMode est défini sur DML_INTERPOLATION_MODE_LINEAR, ou lorsque InterpolationMode est défini sur DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR et RoundingDirection sur DML_AXIS_DIRECTION_DECREASING et OutputPixelOffsets sont ajustés avec une valeur supplémentaire -0,5.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_5_1.
Contraintes de tenseur
InputGradientTensor et OutputGradientTensor doivent avoir le même DataType et le même DimensionCount.
Prise en charge des tenseurs
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputGradientTensor | Input | 1 à 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Sortie | 1 à 4 | FLOAT32, FLOAT16 |
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