Partager via


structure DML_UPSAMPLE_2D_OPERATOR_DESC (directml.h)

Upsample l’image d’entrée, en écrivant le résultat dans le tenseur de sortie. L’ordre des dimensions doit être NCHW (BatchSize, ChannelCount, Height, Width) ou NCDHW (BatchSize, ChannelCount, Depth, Height, Width), mais les foulées peuvent être utilisées si les données sont stockées dans un autre format. Contrairement à DML_RESAMPLE_OPERATOR_DESC, seules les 2 dernières dimensions (hauteur et largeur) peuvent être suréchantillonnées.

Si disponible, vous devez préférer DML_RESAMPLE_OPERATOR_DESC , car il s’agit d’une version plus flexible de DML_UPSAMPLE_2D_OPERATOR_DESC.

Syntaxe

struct DML_UPSAMPLE_2D_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_SIZE_2D            ScaleSize;
  DML_INTERPOLATION_MODE InterpolationMode;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée. Les dimensions attendues de l’InputTensor sont { InputBatchCount, InputChannelCount, InputHeight, InputWidth } pour 4D et { InputBatchCount, InputChannelCount, InputDepth, InputHeight, InputWidth } pour 5D.

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée. Les dimensions attendues du OutputTensor sont { InputBatchCount, InputChannelCount, InputHeight * HeightScale, InputWidth * WidthScale } pour 4D et { InputBatchCount, InputChannelCount, InputDepth, InputHeight * HeightScale, InputWidth * WidthScale } pour 5D.

ScaleSize

Type : DML_SIZE_2D

Échelles de largeur et de hauteur de type UINT à appliquer lors du suréchantillonnage de l’entrée. Voir 0 < ScaleSize.Height <= UINT_MAX / InputHeight et 0 < ScaleSize.Width <= UINT_MAX / InputWidth.

InterpolationMode

Type : DML_INTERPOLATION_MODE

Ce champ détermine le type d’interpolation utilisé pour choisir les pixels de sortie.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Utilise l’algorithme Voisin le plus proche , qui choisit l’élément d’entrée le plus proche du centre de pixels correspondant pour chaque élément de sortie.
  • DML_INTERPOLATION_MODE_LINEAR. Utilise l’algorithme biligneur , qui calcule l’élément de sortie en effectuant la moyenne pondérée des 2 éléments d’entrée voisins les plus proches dans la dimension hauteur et des 2 éléments d’entrée voisins les plus proches dans la dimension de largeur, pour un total de 4 éléments. Cela est vrai même si l’entrée/sortie DimensionCount est 5. Autrement dit, les échantillons sont uniquement moyenés le long des dimensions de largeur et de hauteur, et jamais le long du lot, du canal ou de la profondeur.

Disponibilité

Cet opérateur a été introduit dans DML_FEATURE_LEVEL_1_0.

Contraintes tensoriels

InputTensor et OutputTensor doivent avoir les mêmes DataType et DimensionCount.

Prise en charge de Tensor

Tenseur Genre Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée 4 à 5 FLOAT32, FLOAT16
OutputTensor Sortie 4 à 5 FLOAT32, FLOAT16

Configuration requise

Condition requise Valeur
En-tête directml.h