Partager via


DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC structure (directml.h)

Ajoute chaque élément dans ATensor à son élément correspondant dans BTensor, en plaçant le résultat dans l’élément correspondant de OutputTensor. Les valeurs contenues dans ATensor et BTensor sont déquantisées à l’aide de l’équation suivante, puis ajoutées et requantisées.

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

OutputValue = AValue + BValue

// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
OutputTensor = clamp(round(OutputValue / OutputScale) + OutputZeroPoint, Min, Max)

Syntaxe

struct DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC {
  const DML_TENSOR_DESC *ATensor;
  const DML_TENSOR_DESC *AScaleTensor;
  const DML_TENSOR_DESC *AZeroPointTensor;
  const DML_TENSOR_DESC *BTensor;
  const DML_TENSOR_DESC *BScaleTensor;
  const DML_TENSOR_DESC *BZeroPointTensor;
  const DML_TENSOR_DESC *OutputScaleTensor;
  const DML_TENSOR_DESC *OutputZeroPointTensor;
  const DML_TENSOR_DESC *OutputTensor;
};

Membres

ATensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les entrées du côté gauche.

AScaleTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant le facteur d’échelle souhaité pour ATensor. Le nombre attendu d’éléments dans AScaleTensor est de 1.

AZeroPointTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur contenant le point zéro souhaité pour ATensor. Le nombre attendu d’éléments dans AZeroPointTensor est de 1. AZeroPointTensor est un tenseur facultatif dont la valeur par défaut est 0 si elle n’est pas fournie.

BTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les entrées de droite.

BScaleTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant le facteur d’échelle souhaité pour BTensor. Le nombre attendu d’éléments dans BScaleTensor est de 1.

BZeroPointTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur contenant le point zéro souhaité pour BTensor. Le nombre attendu d’éléments dans BZeroPointTensor est de 1. BZeroPointTensor est un tenseur facultatif qui est défini par défaut sur 0 s’il n’est pas fourni.

OutputScaleTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant le facteur d’échelle souhaité pour OutputTensor. Il s’agit d’un tenseur d’entrée qui définit le facteur d’échelle de quantisation de la sortie à utiliser lors de la quantisation des valeurs de sortie. Le nombre attendu d’éléments dans OutputScaleTensor est de 1.

OutputZeroPointTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur contenant le point zéro souhaité pour OutputTensor. Il s’agit d’un tenseur d’entrée définissant le point zéro de quantisation de sortie à utiliser lors de la quantisation des valeurs de sortie. Le nombre attendu d’éléments dans OutputZeroPointTensor est de 1. OutputZeroPointTensor est un tenseur facultatif qui est défini par défaut sur 0 s’il n’est pas fourni.

OutputTensor

Type : const DML_TENSOR_DESC*

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

Notes

Disponibilité

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

Contraintes tensoriels

  • AScaleTensor, ATensor, AZeroPointTensor, BScaleTensor, BTensor, BZeroPointTensor, OutputScaleTensor, OutputTensor et OutputZeroPointTensor doivent avoir le même DimensionCount.
  • BTensor et BZeroPointTensor doivent avoir le même DataType.
  • OutputTensor et OutputZeroPointTensor doivent avoir le même DataType.
  • ATensor et AZeroPointTensor doivent avoir le même DataType.

Prise en charge des tenseurs

Tenseur Type Nombre de dimensions pris en charge Types de données pris en charge
ATensor Entrée 1 à 8 INT8, UINT8
AScaleTensor Entrée 1 à 8 FLOAT32
AZeroPointTensor Entrée facultative 1 à 8 INT8, UINT8
BTensor Entrée 1 à 8 INT8, UINT8
BScaleTensor Entrée 1 à 8 FLOAT32
BZeroPointTensor Entrée facultative 1 à 8 INT8, UINT8
OutputScaleTensor Entrée 1 à 8 FLOAT32
OutputZeroPointTensor Entrée facultative 1 à 8 INT8, UINT8
OutputTensor Output 1 à 8 INT8, UINT8

Spécifications

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

Voir aussi