Partager via


structure DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC (directml.h)

Calcule l’échelle de quantisation et les valeurs de point zéro nécessaires pour quantifier l’InputTensor, puis applique cette quantisation, en écrivant le résultat dans OutputTensor.

Cet opérateur utilise l’équation suivante pour quantifier.

InputMax = Max(InputTensor)
InputMin = Min(InputTensor)

AValue = (A - AZeroPoint) * AScale
BValue = (B - BZeroPoint) * BScale

// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
OutputScale = (InputMax – InputMin) / (Max – Min)

OutputZeroPoint = Min - InputMin / OutputScale

OutputTensor = clamp(round(InputValue / OutputScale) + OutputZeroPoint, Min, Max)

Syntaxe

struct DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  const DML_TENSOR_DESC *OutputScaleTensor;
  const DML_TENSOR_DESC *OutputZeroPointTensor;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les entrées.

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur de sortie dans lequel écrire les résultats.

OutputScaleTensor

Type : const DML_TENSOR_DESC*

Tenseur de sortie pour écrire le facteur d’échelle de sortie pour OutputTensor. Le nombre attendu d’éléments dans OutputScaleTensor est 1.

OutputZeroPointTensor

Type : const DML_TENSOR_DESC*

Tenseur de sortie pour écrire le point zéro de sortie pour OutputTensor. Le nombre attendu d’éléments dans OutputZeroPointTensor est 1.

Remarques

Disponibilité

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

Contraintes tensoriels

  • InputTensor, OutputScaleTensor, OutputTensor et OutputZeroPointTensor doivent avoir le même DimensionCount.
  • OutputTensor et OutputZeroPointTensor doivent avoir le même DataType.

Prise en charge de Tensor

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Build 22000
Serveur minimal pris en charge Windows Build 22000
En-tête directml.h

Voir aussi