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, OutputTensor 및 OutputZeroPointTensor 에는 동일한 DimensionCount가 있어야 합니다.
- OutputTensor 및 OutputZeroPointTensor 에는 동일한 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 |