DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC構造体 (directml.h)
ScaleTensor および ZeroPointTensor内の対応する要素に対して、
// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
f(input, scale, zero_point) = clamp(round(input / scale) + zero_point, Min, Max)
量子化では、算術を高速化するために、精度の低いデータ型に変換する必要があります。 精度を犠牲にしてパフォーマンスを向上させる一般的な方法です。 8 ビット値のグループは、32 ビット値のグループよりも高速に計算できます。
構文
struct DML_ELEMENT_WISE_QUANTIZE_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 の場合、未定義の動作になります。
InputTensor
ZeroPointTensor
型: const DML_TENSOR_DESC*
量子化に必要なゼロ点を含むテンソル。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む出力テンソル。
可用性
この演算子は、DML_FEATURE_LEVEL_1_0
で導入されました。
Tensor 制約
- InputTensor、OutputTensor、ScaleTensor、および ZeroPointTensor の DimensionCount と サイズは同じである必要があります。
OutputTensor と ZeroPointTensorは、同じ DataType を持つ必要があります。
Tensor のサポート
DML_FEATURE_LEVEL_6_2以降
テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
---|---|---|---|
InputTensor | インプット | 1 から 8 | FLOAT32、FLOAT16、INT32 |
ScaleTensor | インプット | 1 から 8 | FLOAT32、FLOAT16 |
ZeroPointTensor | 省略可能な入力 | 1 から 8 | INT8、UINT8 |
OutputTensor | アウトプット | 1 から 8 | INT8、UINT8 |
DML_FEATURE_LEVEL_6_0以降
テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
---|---|---|---|
InputTensor | インプット | 1 から 8 | FLOAT32、FLOAT16、INT32 |
ScaleTensor | インプット | 1 から 8 | FLOAT32、FLOAT16 |
ZeroPointTensor | インプット | 1 から 8 | INT8、UINT8 |
OutputTensor | アウトプット | 1 から 8 | INT8、UINT8 |
DML_FEATURE_LEVEL_3_0以上
テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
---|---|---|---|
InputTensor | インプット | 1 から 8 | FLOAT32、INT32 |
ScaleTensor | インプット | 1 から 8 | FLOAT32 |
ZeroPointTensor | インプット | 1 から 8 | INT8、UINT8 |
OutputTensor | アウトプット | 1 から 8 | INT8、UINT8 |
DML_FEATURE_LEVEL_2_1以降
テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
---|---|---|---|
InputTensor | インプット | 4 | FLOAT32、INT32 |
ScaleTensor | インプット | 4 | FLOAT32 |
ZeroPointTensor | インプット | 4 | INT8、UINT8 |
OutputTensor | アウトプット | 4 | INT8、UINT8 |
DML_FEATURE_LEVEL_1_0以降
テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
---|---|---|---|
InputTensor | インプット | 4 | FLOAT32 |
ScaleTensor | インプット | 4 | FLOAT32 |
ZeroPointTensor | インプット | 4 | UINT8 |
OutputTensor | アウトプット | 4 | UINT8 |
必要条件
要件 | 価値 |
---|---|
ヘッダー | directml.h |