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 |