DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC構造体 (directml.h)

ATensor 内のすべての要素を BTensor の対応する要素に追加し、OutputTensor の対応する要素に結果を配置します。 ATensorBTensor に含まれる値は、次の式を使用して破棄され、追加および再量子化されます。

AValue = (A - AZeroPoint) * AScale
BValue = (B - BZeroPoint) * BScale

OutputValue = AValue + BValue

// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
OutputTensor = clamp(round(OutputValue / OutputScale) + OutputZeroPoint, Min, Max)

構文

struct DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC {
  const DML_TENSOR_DESC *ATensor;
  const DML_TENSOR_DESC *AScaleTensor;
  const DML_TENSOR_DESC *AZeroPointTensor;
  const DML_TENSOR_DESC *BTensor;
  const DML_TENSOR_DESC *BScaleTensor;
  const DML_TENSOR_DESC *BZeroPointTensor;
  const DML_TENSOR_DESC *OutputScaleTensor;
  const DML_TENSOR_DESC *OutputZeroPointTensor;
  const DML_TENSOR_DESC *OutputTensor;
};

メンバー

ATensor

型: const DML_TENSOR_DESC*

左側の入力を含むテンソル。

AScaleTensor

型: const DML_TENSOR_DESC*

ATensor の目的のスケール ファクターを含む テンソルAScaleTensor の要素の予想される数は 1 です。

AZeroPointTensor

型: _Maybenull_ const DML_TENSOR_DESC*

ATensor の目的のゼロ ポイントを含む テンソルAZeroPointTensor の要素の予想される数は 1 です。 AZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 です。

BTensor

型: const DML_TENSOR_DESC*

右側の入力を含むテンソル。

BScaleTensor

型: const DML_TENSOR_DESC*

BTensor の目的のスケール ファクターを含む テンソルBScaleTensor の要素の予想される数は 1 です。

BZeroPointTensor

型: _Maybenull_ const DML_TENSOR_DESC*

BTensor の目的のゼロ ポイントを含む テンソルBZeroPointTensor の要素の予想される数は 1 です。 BZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 です。

OutputScaleTensor

型: const DML_TENSOR_DESC*

OutputTensor の目的のスケール ファクターを含む テンソル。 これは、出力値の量子化中に使用する出力量子化スケールファクターを定義する入力テンソルです。 OutputScaleTensor の要素の予想される数は 1 です。

OutputZeroPointTensor

型: _Maybenull_ const DML_TENSOR_DESC*

OutputTensor の目的のゼロ ポイントを含む テンソル。 これは、出力値を量子化する際に使用する出力量子化ゼロポイントを定義する入力テンソルです。 OutputZeroPointTensor の要素の予想される数は 1 です。 OutputZeroPointTensor は省略可能なテンソルであり、指定しない場合は既定値は 0 です。

OutputTensor

型: const DML_TENSOR_DESC*

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

解説

可用性

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

テンソル制約

  • AScaleTensorATensorAZeroPointTensorBScaleTensorBTensorBZeroPointTensorOutputScaleTensorOutputTensorOutputZeroPointTensor は、同じ DimensionCount を持っている必要があります。
  • BTensorBZeroPointTensor には、同じ DataType が必要です。
  • OutputTensorOutputZeroPointTensor には、同じ DataType が必要です。
  • ATensorAZeroPointTensor には、同じ DataType が必要です。

Tensor のサポート

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
ATensor 入力 1 から 8 INT8、UINT8
AScaleTensor 入力 1 から 8 FLOAT32
AZeroPointTensor 省略可能な入力 1 から 8 INT8、UINT8
BTensor 入力 1 から 8 INT8、UINT8
BScaleTensor 入力 1 から 8 FLOAT32
BZeroPointTensor 省略可能な入力 1 から 8 INT8、UINT8
OutputScaleTensor 入力 1 から 8 FLOAT32
OutputZeroPointTensor 省略可能な入力 1 から 8 INT8、UINT8
OutputTensor 出力 1 から 8 INT8、UINT8

要件

   
サポートされている最小のクライアント Windows ビルド 22000
サポートされている最小のサーバー Windows ビルド 22000
Header directml.h

関連項目