structure DML_RESAMPLE_GRAD_OPERATOR_DESC (directml.h)
Calcule les gradients de backpropagation pour rééchantillonner (voir DML_RESAMPLE1_OPERATOR_DESC).
DML_RESAMPLE1_OPERATOR_DESC réécrit les dimensions arbitraires du tenseur d’entrée à l’aide de l’échantillonnage voisin le plus proche ou de l’interpolation bilinéaire. Avec un InputGradientTensor avec les mêmes tailles que la sortie d’un DML_RESAMPLE1_OPERATOR_DESC équivalent, cet opérateur produit un OutputGradientTensor avec les mêmes tailles que l’entrée du DML_RESAMPLE1_OPERATOR_DESC.
Par exemple, considérez une DML_RESAMPLE1_OPERATOR_DESC qui effectue une mise à l’échelle du voisin le plus proche de 1,5x dans la largeur et de 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.
Le DML_RESAMPLE_GRAD_OPERATOR_DESC correspondant effectue les opérations suivantes.
InputGradientTensor OutputGradientTensor
[4, 5, 6] ResampleGrad [[9, 6],
--> [0, 0]]
Notez que les valeurs du OutputGradientTensor représentent la contributions pondérée de cet élément pour le OutputTensor pendant l’opérateur DML_RESAMPLE1_OPERATOR_DESC d’origine.
Syntaxe
struct DML_RESAMPLE_GRAD_OPERATOR_DESC {
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
DML_INTERPOLATION_MODE InterpolationMode;
UINT DimensionCount;
const FLOAT *Scales;
const FLOAT *InputPixelOffsets;
const FLOAT *OutputPixelOffsets;
};
Membres
InputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de dégradé entrant. Cela est généralement obtenu à partir de la sortie de backpropagation d’une couche précédente. En règle générale, ce tenseur a les mêmes tailles que la sortie du DML_RESAMPLE1_OPERATOR_DESC correspondant dans la passe avant.
OutputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de sortie contenant les dégradés backpropagés. En règle générale, ce tenseur a les mêmes tailles que l’entrée du DML_RESAMPLE1_OPERATOR_DESC correspondant dans la passe avant.
InterpolationMode
Type : DML_INTERPOLATION_MODE
Consultez InterpolationMode dans DML_RESAMPLE1_OPERATOR_DESC.
DimensionCount
Type : UINT
Nombre d’éléments dans les tableaux Scales, InputPixelOffsets et OutputPixelOffsets . Cette valeur doit être égale au DimensionCount fourni dans InputGradientTensor et OutputGradientTensor.
Scales
Type : _Field_size_(DimensionCount) const FLOAT*
Consultez Échelles dans DML_RESAMPLE1_OPERATOR_DESC.
InputPixelOffsets
Type : _Field_size_(DimensionCount) const FLOAT*
Consultez InputPixelOffsets dans DML_RESAMPLE1_OPERATOR_DESC.
OutputPixelOffsets
Type : _Field_size_(DimensionCount) const FLOAT*
Consultez OutputPixelOffsets dans DML_RESAMPLE1_OPERATOR_DESC.
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 de Tensor
DML_FEATURE_LEVEL_5_1 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputGradientTensor | Entrée | 1 à 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Output | 1 à 4 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputGradientTensor | Entrée | 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Output | 4 | FLOAT32, FLOAT16 |
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | directml.h |