DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC 構造体 (directml.h)
入力テンソルに対して平均分散正規化関数を実行します。 この演算子は、正規化を実行する入力テンソルの平均と分散を計算します。 この演算子は、次の計算を実行します。
Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).
構文
struct DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *OutputTensor;
BOOL CrossChannel;
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 データを含むオプションのテンソル。 このテンソルのディメンションは である { BatchCount, ChannelCount, Height, Width }
必要があります。 任意のディメンションを 1 に置き換えて、そのディメンションでブロードキャストできます。 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*
バイアス データを含む任意のテンソル。 このテンソルのディメンションは である { BatchCount, ChannelCount, Height, Width }
必要があります。 任意のディメンションを 1 に置き換えて、そのディメンションでブロードキャストできます。 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 }
。
CrossChannel
種類: BOOL
TRUE の場合、MeanVariance レイヤーには平均と分散の計算にチャネルが含まれます。つまり、軸{ChannelCount, Height, Width}
間で正規化されます。 FALSE の場合、平均と分散の計算は軸{Height, Width}
間で正規化され、各チャネルは独立しています。
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_FEATURE_LEVEL_2_1
導入されました。
可用性
この演算子は、 で DML_FEATURE_LEVEL_1_0
導入されました。
テンソル制約
- InputTensor と OutputTensor のサイズは同じである必要があります。
- BiasTensor、 InputTensor、 OutputTensor、 ScaleTensor は同じ DataType である必要があります。
Tensor のサポート
テンソル | 種類 | Dimensions | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|---|
InputTensor | 入力 | { BatchCount, ChannelCount, Height, Width } | 4 | FLOAT32、FLOAT16 |
ScaleTensor | 省略可能な入力 | { ScaleBatchCount, ScaleChannelCount, ScaleHeight, ScaleWidth } | 4 | FLOAT32、FLOAT16 |
BiasTensor | 省略可能な入力 | { BiasBatchCount、BiasChannelCount、BiasHeight、BiasWidth } | 4 | FLOAT32、FLOAT16 |
OutputTensor | 出力 | { BatchCount, ChannelCount, Height, Width } | 4 | FLOAT32、FLOAT16 |
要件
Header | directml.h |