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_FEATURE_LEVEL_2_1引入了此运算符的较新版本(DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC)。

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0

张量约束

  • InputTensorOutputTensor 必须具有相同 的大小
  • BiasTensorInputTensorOutputTensorScaleTensor 必须具有相同 的数据类型

Tensor 支持

种类 维度 支持的维度计数 支持的数据类型
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

要求

   
标头 directml.h

另请参阅