Поделиться через


структура 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

См. также