DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC構造体 (directml.h)
ScaleTensor および ZeroPointTensor の対応する要素に対して、InputTensor 内のすべての要素に対して次の線形量子化関数を実行し、OutputTensor の対応する要素に結果を配置します。
// 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*
スケールを含むテンソル。 InputTensor が INT32 の場合は、ScaleTensor をFLOAT32する必要があります。 それ以外の場合、ScaleTensor は InputTensor と同じ DataType を持つ必要があります。
ZeroPointTensor
型: const DML_TENSOR_DESC*
量子化に必要なゼロ ポイントを含むテンソル。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む出力テンソル。
可用性
この演算子は で DML_FEATURE_LEVEL_1_0
導入されました。
テンソル制約
- 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 |
要件
Header | directml.h |