Partager via


DML_RESAMPLE_OPERATOR_DESC structure (directml.h)

Rééchantillonne les éléments de la source vers le tenseur de destination, en utilisant les facteurs d’échelle pour calculer la taille du tenseur de destination. Vous pouvez utiliser un mode d’interpolation linéaire ou voisin le plus proche. L’opérateur prend en charge l’interpolation sur plusieurs dimensions, pas seulement en 2D. Vous pouvez donc conserver la même taille spatiale, mais interpoler entre les canaux ou les lots.

Syntaxe

struct DML_RESAMPLE_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   ScaleCount;
  const FLOAT            *Scales;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée.

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur dans lequel écrire les données de sortie.

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 d’interpolation linéaire , qui calcule l’élément de sortie en calculant la moyenne pondérée des 2 éléments d’entrée voisins les plus proches par dimension. Le rééchantillonnage est pris en charge jusqu’à 4 dimensions (quadrilignes), où la moyenne pondérée est calculée sur un total de 16 éléments d’entrée pour chaque élément de sortie.

ScaleCount

Type : UINT

Le nombre de valeurs dans le tableau Scales pointe vers. Cette valeur doit correspondre au nombre de dimensions de InputTensor et OutputTensor.

Scales

Type : _Field_size_(ScaleCount) const FLOAT*

Les échelles à appliquer lors du rééchantillonnage de l’entrée, où met > à l’échelle 1 scale-up de l’image et met à l’échelle < 1 l’image pour cette dimension. Notez que les échelles n’ont pas besoin d’être exactement OutputSize / InputSize. Si l’entrée après la mise à l’échelle est supérieure à la limite de sortie, nous la rognerons à la taille de sortie. En revanche, si l’entrée après la mise à l’échelle est inférieure à la limite de sortie, les bords de sortie sont serrés.

Remarques

Une version plus récente de cet opérateur, DML_RESAMPLE1_OPERATOR_DESC, a été introduite dans DML_FEATURE_LEVEL_2_1.

Disponibilité

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

Contraintes tensoriels

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

Prise en charge des tenseurs

DML_FEATURE_LEVEL_6_2 et versions ultérieures

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

DML_FEATURE_LEVEL_5_1 et versions ultérieures

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

DML_FEATURE_LEVEL_2_0 et versions ultérieures

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

Configuration requise

   
Client minimal pris en charge Windows 10, version 2004 (10.0 ; Build 19041)
Serveur minimal pris en charge Windows Server, version 2004 (10.0 ; Build 19041)
En-tête directml.h