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 |