Condividi tramite


struttura DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC (directml.h)

Aggiunge ogni elemento in ATensor al relativo elemento corrispondente in BTensor, inserendo il risultato nell'elemento corrispondente di OutputTensor. I valori contenuti in ATensor e BTensor vengono dequantizzati usando l'equazione seguente e quindi aggiunti e riquantizzati.

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)

Sintassi

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;
};

Membri

ATensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente gli input sul lato sinistro.

AScaleTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente il fattore di scala desiderato per ATensor. Il numero previsto di elementi in AScaleTensor è 1.

Nota

Un valore di scala pari a 0 comporta un comportamento non definito.

AZeroPointTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Tensore contenente il punto zero desiderato per ATensor. Il numero previsto di elementi in AZeroPointTensor è 1. AZeroPointTensor è un tensore facoltativo che per impostazione predefinita è 0 se non specificato.

BTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente gli input sul lato destro.

BScaleTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente il fattore di scala desiderato per BTensor. Il numero previsto di elementi in BScaleTensor è 1.

Nota

Un valore di scala pari a 0 comporta un comportamento non definito.

BZeroPointTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Tensore contenente il punto zero desiderato per BTensor. Il numero previsto di elementi in BZeroPointTensor è 1. BZeroPointTensor è un tensore facoltativo che per impostazione predefinita è 0 se non specificato.

OutputScaleTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente il fattore di scala desiderato per OutputTensor. Si tratta di un tensore di input che definisce il fattore di scala di quantizzazione di output da usare durante la quantizzazione dei valori di output. Il numero previsto di elementi in OutputScaleTensor è 1.

Nota

Un valore di scala pari a 0 comporta un comportamento non definito.

OutputZeroPointTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Tensore contenente il punto zero desiderato per OutputTensor. Si tratta di un tensore di input che definisce il punto zero di quantizzazione di output da usare durante la quantizzazione dei valori di output. Il numero previsto di elementi in OutputZeroPointTensor è 1. OutputZeroPointTensor è un tensore facoltativo che per impostazione predefinita è 0 se non specificato.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensore di output in cui scrivere i risultati.

Osservazioni

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_4_0.

Vincoli tensor

  • AScaleTensor, ATensor, AZeroPointTensor, BScaleTensor, BTensor, BZeroPointTensor, OutputScaleTensor, OutputTensore OutputZeroPointTensor devono avere lo stesso DimensionCount.
  • BTensor e BZeroPointTensor devono avere lo stesso DataType.
  • OutputTensor e OutputZeroPointTensor devono avere lo stesso DataType.
  • ATensor e AZeroPointTensor devono avere lo stesso DataType.

Supporto tensor

Tensore Gentile Conteggi delle dimensioni supportati Tipi di dati supportati
ATensor Immissione Da 1 a 8 INT8, UINT8
AScaleTensor Immissione Da 1 a 8 FLOAT32
AZeroPointTensor Input facoltativo Da 1 a 8 INT8, UINT8
BTensor Immissione Da 1 a 8 INT8, UINT8
BScaleTensor Immissione Da 1 a 8 FLOAT32
BZeroPointTensor Input facoltativo Da 1 a 8 INT8, UINT8
OutputScaleTensor Immissione Da 1 a 8 FLOAT32
OutputZeroPointTensor Input facoltativo Da 1 a 8 INT8, UINT8
OutputTensor Prodotto Da 1 a 8 INT8, UINT8

Fabbisogno

Requisito Valore
client minimo supportato Windows Build 22000
server minimo supportato Windows Build 22000
intestazione directml.h

Vedere anche