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_LEVELがDML_FEATURE_LEVEL_4_0未満の場合、このテンソルのディメンションは である{ ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }
必要があります。 ディメンション ScaleBatchCount、ScaleHeight、ScaleWidth は InputTensor と一致するか、1 に設定して入力全体でそれらのディメンションを自動的にブロードキャストする必要があります。
DML_FEATURE_LEVELがDML_FEATURE_LEVEL_4_0以上の場合は、任意のディメンションを 1 に設定し、InputTensor と一致するように自動的にブロードキャストできます。
DML_FEATURE_LEVELがDML_FEATURE_LEVEL_5_2未満の場合、BiasTensor が存在する場合は、このテンソルが必要です。 DML_FEATURE_LEVELがDML_FEATURE_LEVEL_5_2以上の場合、BiasTensor の値に関係なく、このテンソルを null にすることができます。
BiasTensor
型: _Maybenull_ const DML_TENSOR_DESC*
Bias データを含む省略可能なテンソル。
DML_FEATURE_LEVELがDML_FEATURE_LEVEL_4_0未満の場合、このテンソルのディメンションは である{ BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }
必要があります。 Dimensions BiasBatchCount、BiasHeight、BiasWidth は InputTensor と一致するか、1 に設定して入力全体でそれらのディメンションを自動的にブロードキャストする必要があります。
DML_FEATURE_LEVELがDML_FEATURE_LEVEL_4_0以上の場合は、任意のディメンションを 1 に設定し、InputTensor と一致するように自動的にブロードキャストできます。
DML_FEATURE_LEVELがDML_FEATURE_LEVEL_5_2未満の場合、ScaleTensor が存在する場合は、このテンソルが必要です。 DML_FEATURE_LEVELがDML_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。 それ以外の場合は FALSE。 FALSE の場合、正規化式は になります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_DESCで CrossChannel を FALSE に設定することと同じですが、Axes 配列を に{ 1, 2, 3 }
設定することは、CrossChannel を TRUE に設定することと同じです。
可用性
この演算子は で DML_FEATURE_LEVEL_2_1
導入されました。
テンソル制約
BiasTensor、 InputTensor、 OutputTensor、 ScaleTensor には、 同じ DataType と DimensionCount が必要です。
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 |