структура DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC (directml.h)
Выполняет следующую линейную функцию деквантизации для каждого элемента в InputTensor относительно соответствующего элемента в ScaleTensor и ZeroPointTensor
, помещая результаты в соответствующий элемент OutputTensor.
f(input, scale, zero_point) = (input - zero_point) * scale
Квантизация — это распространенный способ повышения производительности за счет точности. Группу 8-разрядных значений int можно вычислить быстрее, чем группа из 32-разрядных значений с плавающей запятой. Деквантизация преобразует закодированные данные обратно в свой домен.
Синтаксис
struct DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *ZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные.
ScaleTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий шкалы. Значение шкалы 0 приведет к неопределенному поведению.
Заметка
Значение шкалы 0 приводит к неопределенному поведению.
ZeroPointTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий нулевой пункт, используемый для квантизации.
OutputTensor
Тип: const DML_TENSOR_DESC*
Выходной тензор для записи результатов.
Наличие
Этот оператор появился в DML_FEATURE_LEVEL_1_0
.
Ограничения Tensor
InputTensor ,OutputTensor , ScaleTensorScaleTensor и ZeroPointTensor должны иметь одинаковыеи Размеры .- InputTensor и ZeroPointTensor должны иметь одинаковые DataType.
- OutputTensor и ScaleTensor должны иметь одинаковые DataType.
Поддержка Tensor
DML_FEATURE_LEVEL_6_2 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Ввод | От 1 до 8 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
ScaleTensor | Ввод | От 1 до 8 | FLOAT32, FLOAT16 |
ZeroPointTensor | Необязательные входные данные | От 1 до 8 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Выпуск | От 1 до 8 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_6_0 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Ввод | От 1 до 8 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
ScaleTensor | Ввод | От 1 до 8 | FLOAT32, FLOAT16 |
ZeroPointTensor | Ввод | От 1 до 8 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Выпуск | От 1 до 8 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Ввод | От 1 до 8 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
ScaleTensor | Ввод | От 1 до 8 | FLOAT32 |
ZeroPointTensor | Ввод | От 1 до 8 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Выпуск | От 1 до 8 | FLOAT32 |
DML_FEATURE_LEVEL_2_1 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Ввод | 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
ScaleTensor | Ввод | 4 | FLOAT32 |
ZeroPointTensor | Ввод | 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Выпуск | 4 | FLOAT32 |
DML_FEATURE_LEVEL_1_0 и выше
Тензор | Добрый | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Ввод | 4 | UINT8 |
ScaleTensor | Ввод | 4 | FLOAT32 |
ZeroPointTensor | Ввод | 4 | UINT8 |
OutputTensor | Выпуск | 4 | FLOAT32 |
Требования
Требование | Ценность |
---|---|
заголовка | directml.h |