Share via


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*

スケールを含むテンソル。 InputTensorINT32 の場合は、ScaleTensorFLOAT32する必要があります。 それ以外の場合、ScaleTensorInputTensor と同じ DataType を持つ必要があります。

ZeroPointTensor

型: const DML_TENSOR_DESC*

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

OutputTensor

型: const DML_TENSOR_DESC*

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

可用性

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

テンソル制約

  • InputTensorOutputTensorScaleTensorZeroPointTensorDimensionCountサイズは同じである必要があります。
  • OutputTensorZeroPointTensor には、同じ 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

こちらもご覧ください

DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC