DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC 구조체(directml.h)
ATensor의 모든 요소를 BTensor의 해당 요소에 추가하여 결과를 OutputTensor의 해당 요소에 배치합니다. ATensor 및 BTensor에 포함된 값은 다음 수식을 사용하여 정량화한 다음, 추가되고 다시 정량화됩니다.
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, OutputTensor 및 OutputZeroPointTensor 는 동일한 DimensionCount를 가져야 합니다.
- BTensor 및 BZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
- OutputTensor 및 OutputZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
- ATensor 및 AZeroPointTensor 에는 동일한 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 |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기