次の方法で共有


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 です。

手記

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

AZeroPointTensor

型: _Maybenull_ const DML_TENSOR_DESC*

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

BTensor

型: const DML_TENSOR_DESC*

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

BScaleTensor

型: const DML_TENSOR_DESC*

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

手記

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

BZeroPointTensor

型: _Maybenull_ const DML_TENSOR_DESC*

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

OutputScaleTensor

型: const DML_TENSOR_DESC*

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

手記

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

OutputZeroPointTensor

型: _Maybenull_ const DML_TENSOR_DESC*

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

OutputTensor

型: const DML_TENSOR_DESC*

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

備考

可用性

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

Tensor 制約

  • AScaleTensorATensorAZeroPointTensorBScaleTensorBTensorBZeroPointTensorOutputScaleTensorOutputTensor、および OutputZeroPointTensor は、同じ DimensionCountを持つ必要があります。
  • BZeroPointTensor と BZeroPointTensor 、DataTypeが同じである必要があります。
  • OutputTensor と OutputZeroPointTensor は、同じ DataTypeを持っている必要があります。
  • ATensor と AZeroPointTensor は、同じ 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
ヘッダー directml.h

関連項目