структура 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.
Заметка
Значение шкалы 0 приводит к неопределенному поведению.
AZeroPointTensor
Тип: _Возможноnull_ const DML_TENSOR_DESC*
Тензор, содержащий нужную точку нуля для ATensor. Ожидаемое количество элементов в AZeroPointTensor равно 1. AZeroPointTensor является необязательным тензором, который по умолчанию имеет значение 0, если он не указан.
BTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные справа.
BScaleTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий нужный коэффициент масштабирования для BTensor. Ожидаемое количество элементов в BScaleTensor равно 1.
Заметка
Значение шкалы 0 приводит к неопределенному поведению.
BZeroPointTensor
Тип: _Возможноnull_ const DML_TENSOR_DESC*
Тензор, содержащий нужную нулевой точку для BTensor. Ожидаемое количество элементов в BZeroPointTensor равно 1. BZeroPointTensor является необязательным тензором, который по умолчанию равен 0, если он не указан.
OutputScaleTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий нужный коэффициент масштабирования для OutputTensor. Это входной тензор, определяющий коэффициент масштабирования выходных квантизации для использования при квантизации выходных значений. Ожидаемое количество элементов в OutputScaleTensor равно 1.
Заметка
Значение шкалы 0 приводит к неопределенному поведению.
OutputZeroPointTensor
Тип: _Возможноnull_ const DML_TENSOR_DESC*
Тензор, содержащий нужную точку нуля для OutputTensor. Это тензор ввода, определяющий нулевая точка квантизации выходных данных, используемая при квантизации выходных значений. Ожидаемое количество элементов в OutputZeroPointTensor равно 1. OutputZeroPointTensor является необязательным тензором, который по умолчанию равен 0, если он не указан.
OutputTensor
Тип: const DML_TENSOR_DESC*
Выходной тензор для записи результатов.
Замечания
Наличие
Этот оператор появился в DML_FEATURE_LEVEL_4_0.
Ограничения Tensor
- AScaleTensor, ATensor, AZeroPointTensor, BScaleTensor, BTensor, BZeroPointTensor, OutputScaleTensor, OutputTensor и OutputZeroPointTensor должны иметь одинаковые DimensionCount.
- BTensor и BZeroPointTensor должны иметь одинаковые DataType.
- OutputTensorи OutputZeroPointTensor должны иметь одинаковые DataType.
- ATensor и AZeroPointTensor должны иметь одинаковые DataType.
Поддержка Tensor
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
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 |