다음을 통해 공유


DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC 구조체(directml.h)

InputTensor를 정량화하는 데 필요한 양자화 배율과 0포인트 값을 계산한 다음, 해당 양자화를 적용하여 결과를 OutputTensor에 기록합니다.

이 연산자는 다음 수식을 사용하여 수량화합니다.

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)

구문

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

멤버

InputTensor

형식: const DML_TENSOR_DESC*

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

OutputTensor

형식: const DML_TENSOR_DESC*

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

OutputScaleTensor

형식: const DML_TENSOR_DESC*

OutputTensor에 대한 출력 배율 인수를 쓸 출력 텐서입니다. OutputScaleTensor의 예상 요소 수는 1입니다.

OutputZeroPointTensor

형식: const DML_TENSOR_DESC*

OutputTensor에 대한 출력 0포인트를 쓸 출력 텐서입니다. OutputZeroPointTensor의 예상 요소 수는 1입니다.

설명

가용성

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

텐서 제약 조건

  • InputTensor, OutputScaleTensor, OutputTensorOutputZeroPointTensor 에는 동일한 DimensionCount가 있어야 합니다.
  • OutputTensorOutputZeroPointTensor 에는 동일한 DataType이 있어야 합니다.

텐서 지원

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1-8 FLOAT32, FLOAT16
OutputTensor 출력 1-8 INT8, UINT8
OutputScaleTensor 출력 1-8 FLOAT32
OutputZeroPointTensor 출력 1-8 INT8, UINT8

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 빌드 22000
지원되는 최소 서버 Windows 빌드 22000
머리글 directml.h

추가 정보