Partager via


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