다음을 통해 공유


DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC 구조체(directml.h)

ATensor의 모든 요소를 BTensor의 해당 요소에 추가하여 결과를 OutputTensor의 해당 요소에 배치합니다. ATensorBTensor에 포함된 값은 다음 수식을 사용하여 정량화한 다음, 추가되고 다시 정량화됩니다.

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)

구문

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

멤버

ATensor

형식: const DML_TENSOR_DESC*

왼쪽 입력을 포함하는 텐서입니다.

AScaleTensor

형식: const DML_TENSOR_DESC*

ATensor에 대해 원하는 배율 인수를 포함하는 텐서입니다. AScaleTensor의 예상 요소 수는 1입니다.

AZeroPointTensor

형식: _Maybenull_ const DML_TENSOR_DESC*

ATensor에 대해 원하는 0포인트를 포함하는 텐서입니다. AZeroPointTensor의 예상 요소 수는 1입니다. AZeroPointTensor 는 제공되지 않은 경우 기본값이 0인 선택적 텐서입니다.

BTensor

형식: const DML_TENSOR_DESC*

오른쪽 입력을 포함하는 텐서입니다.

BScaleTensor

형식: const DML_TENSOR_DESC*

BTensor에 대해 원하는 배율 인수를 포함하는 텐서입니다. BScaleTensor의 예상 요소 수는 1입니다.

BZeroPointTensor

형식: _Maybenull_ const DML_TENSOR_DESC*

BTensor에 대해 원하는 0점을 포함하는 텐서입니다. BZeroPointTensor의 예상 요소 수는 1입니다. BZeroPointTensor 는 제공되지 않은 경우 기본값이 0인 선택적 텐서입니다.

OutputScaleTensor

형식: const DML_TENSOR_DESC*

OutputTensor에 대해 원하는 배율 인수를 포함하는 텐서입니다. 출력 값을 정량화하는 동안 사용할 출력 양자화 배율 인수를 정의하는 입력 텐서입니다. OutputScaleTensor의 예상 요소 수는 1입니다.

OutputZeroPointTensor

형식: _Maybenull_ const DML_TENSOR_DESC*

OutputTensor에 대해 원하는 0포인트를 포함하는 텐서입니다. 출력 값을 정량화하는 동안 사용할 출력 양자화 0점을 정의하는 입력 텐서입니다. OutputZeroPointTensor의 예상 요소 수는 1입니다. OutputZeroPointTensor 는 제공되지 않은 경우 기본값이 0인 선택적 텐서입니다.

OutputTensor

형식: const DML_TENSOR_DESC*

결과를 쓸 출력 텐서입니다.

설명

가용성

이 연산자는 DML_FEATURE_LEVEL_4_0 도입되었습니다.

텐서 제약 조건

  • AScaleTensor, ATensor, AZeroPointTensor, BScaleTensor, BTensor, BZeroPointTensor, OutputScaleTensor, OutputTensorOutputZeroPointTensor 는 동일한 DimensionCount를 가져야 합니다.
  • BTensorBZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
  • OutputTensorOutputZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
  • ATensorAZeroPointTensor 에는 동일한 DataType이 있어야 합니다.

텐서 지원

텐서 Kind 지원되는 차원 수 지원되는 데이터 형식
ATensor 입력 1~8개 INT8, UINT8
AScaleTensor 입력 1~8개 FLOAT32
AZeroPointTensor 선택적 입력 1~8개 INT8, UINT8
BTensor 입력 1~8개 INT8, UINT8
BScaleTensor 입력 1~8개 FLOAT32
BZeroPointTensor 선택적 입력 1~8개 INT8, UINT8
OutputScaleTensor 입력 1~8개 FLOAT32
OutputZeroPointTensor 선택적 입력 1~8개 INT8, UINT8
OutputTensor 출력 1~8개 INT8, UINT8

요구 사항

   
지원되는 최소 클라이언트 Windows Build 22000
지원되는 최소 서버 Windows Build 22000
머리글 directml.h

추가 정보