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 |