次の方法で共有


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*

スケールを含むテンソル。

手記

スケール値が 0 の場合、未定義の動作になります。

InputTensor INT32場合は、ScaleTensor FLOAT32する必要があります。 それ以外の場合は、ScaleTensor InputTensorと同じ DataType 必要があります。

ZeroPointTensor

型: const DML_TENSOR_DESC*

量子化に必要なゼロ点を含むテンソル。

OutputTensor

型: const DML_TENSOR_DESC*

結果を書き込む出力テンソル。

可用性

この演算子は、DML_FEATURE_LEVEL_1_0で導入されました。

Tensor 制約

  • InputTensorOutputTensorScaleTensorおよび ZeroPointTensorDimensionCountサイズは同じである必要があります
  • 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

関連項目

DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC