次の方法で共有


DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC構造体 (directml.h)

入力テンソルに対して平均分散正規化関数を実行します。 この演算子は、正規化を実行する入力テンソルの平均と分散を計算します。 この演算子は、次の計算を実行します。

Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

構文

struct DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  UINT                    AxisCount;
  const UINT              *Axes;
  BOOL                    NormalizeVariance;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

メンバー

InputTensor

型: const DML_TENSOR_DESC*

入力データを含むテンソル。 このテンソルの次元は である { BatchCount, ChannelCount, Height, Width }必要があります。

ScaleTensor

型: _Maybenull_ const DML_TENSOR_DESC*

Scale データを含むオプションのテンソル。

DML_FEATURE_LEVELDML_FEATURE_LEVEL_4_0未満の場合、このテンソルのディメンションは である{ ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }必要があります。 ディメンション ScaleBatchCount、ScaleHeight、ScaleWidth は InputTensor と一致するか、1 に設定して入力全体でそれらのディメンションを自動的にブロードキャストする必要があります。

DML_FEATURE_LEVELDML_FEATURE_LEVEL_4_0以上の場合は、任意のディメンションを 1 に設定し、InputTensor と一致するように自動的にブロードキャストできます。

DML_FEATURE_LEVELDML_FEATURE_LEVEL_5_2未満の場合、BiasTensor が存在する場合は、このテンソルが必要です。 DML_FEATURE_LEVELDML_FEATURE_LEVEL_5_2以上の場合、BiasTensor の値に関係なく、このテンソルを null にすることができます。

BiasTensor

型: _Maybenull_ const DML_TENSOR_DESC*

Bias データを含む省略可能なテンソル。

DML_FEATURE_LEVELDML_FEATURE_LEVEL_4_0未満の場合、このテンソルのディメンションは である{ BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }必要があります。 Dimensions BiasBatchCount、BiasHeight、BiasWidth は InputTensor と一致するか、1 に設定して入力全体でそれらのディメンションを自動的にブロードキャストする必要があります。

DML_FEATURE_LEVELDML_FEATURE_LEVEL_4_0以上の場合は、任意のディメンションを 1 に設定し、InputTensor と一致するように自動的にブロードキャストできます。

DML_FEATURE_LEVELDML_FEATURE_LEVEL_5_2未満の場合、ScaleTensor が存在する場合は、このテンソルが必要です。 DML_FEATURE_LEVELDML_FEATURE_LEVEL_5_2以上の場合、ScaleTensor の値に関係なく、このテンソルを null にすることができます。

OutputTensor

型: const DML_TENSOR_DESC*

結果を書き込むテンソル。 このテンソルのディメンションは です { BatchCount, ChannelCount, Height, Width }

AxisCount

型: UINT

軸の数。 このフィールドは 、Axes 配列のサイズを決定します。

Axes

型: _Field_size_(AxisCount) const UINT*

平均と分散を計算する軸。

NormalizeVariance

種類: BOOL

正規化レイヤーに正規化計算に分散が含まれている場合は TRUE。 それ以外の場合は FALSEFALSE の場合、正規化式は になりますOutput = FusedActivation(Scale * (Input - Mean) + Bias)

Epsilon

型: FLOAT

ゼロによる除算を回避するために使用する epsilon 値。 既定値として、値 0.00001 をお勧めします。

FusedActivation

型: _Maybenull_ const DML_OPERATOR_DESC*

正規化後に適用するオプションの融合アクティブ化レイヤー。

解説

DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC は、 DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESCの機能のスーパーセットです。 ここでは、Axes 配列を に{ 2, 3 }設定することは、DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESCCrossChannelFALSE に設定することと同じですが、Axes 配列を に{ 1, 2, 3 }設定することは、CrossChannelTRUE に設定することと同じです。

可用性

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

テンソル制約

BiasTensorInputTensorOutputTensorScaleTensor には、 同じ DataTypeDimensionCount が必要です。

Tensor のサポート

DML_FEATURE_LEVEL_3_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 1 から 8 FLOAT32、FLOAT16
ScaleTensor 省略可能な入力 1 から 8 FLOAT32、FLOAT16
BiasTensor 省略可能な入力 1 から 8 FLOAT32、FLOAT16
OutputTensor 出力 1 から 8 FLOAT32、FLOAT16

DML_FEATURE_LEVEL_2_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 4 FLOAT32、FLOAT16
ScaleTensor 省略可能な入力 4 FLOAT32、FLOAT16
BiasTensor 省略可能な入力 4 FLOAT32、FLOAT16
OutputTensor 出力 4 FLOAT32、FLOAT16

要件

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

関連項目

融合演算子を使用してパフォーマンスを向上させる