DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC 结构 (directml.h)

对输入执行批量规范化。 此运算符执行以下计算: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias + FusedAdd)

ScaleTensorBiasTensor 中的任何维度都可以设置为 1,并自动广播以匹配 InputTensor,但否则必须等于 InputTensor 中相应维度的大小。 MeanTensorVarianceTensor 是在 ScaleTensor 和 BiasTensor 大小等于一个维度集的输入上计算的。

语法

struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *FusedAddTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  const DML_TENSOR_DESC   *OutputMeanTensor;
  const DML_TENSOR_DESC   *OutputVarianceTensor;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

成员

InputTensor

类型: const DML_TENSOR_DESC*

包含输入数据的张量。

ScaleTensor

类型: const DML_TENSOR_DESC*

包含 Scale 数据的张量。

BiasTensor

类型: const DML_TENSOR_DESC*

包含偏差数据的张量。

FusedAddTensor

类型:_Maybenull_ const DML_TENSOR_DESC*

一个可选的张量,其中包含在 FusedActivation 之前添加到结果中的数据(如果有)。

OutputTensor

类型: const DML_TENSOR_DESC*

要向其写入结果的张量。

OutputMeanTensor

类型: const DML_TENSOR_DESC*

要向其写入输入平均值的张量。

OutputVarianceTensor

类型: const DML_TENSOR_DESC*

要向其写入输入方差的张量。

Epsilon

类型: FLOAT

用于避免除以零的 epsilon 值。

FusedActivation

类型:_Maybenull_ const DML_OPERATOR_DESC*

在规范化后应用的可选融合激活层。 有关详细信息,请参阅 使用融合运算符提高性能

注解

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_4_1

张量约束

  • BiasTensorFusedAddTensorInputTensorOutputMeanTensorOutputTensorOutputVarianceTensorScaleTensor 必须具有相同 的 DataTypeDimensionCount
  • BiasTensorOutputMeanTensorOutputVarianceTensorScaleTensor 必须具有相同 的大小
  • FusedAddTensorInputTensorOutputTensor 必须具有相同 的大小

Tensor 支持

DML_FEATURE_LEVEL_4_1 及更高版本

种类 维度 支持的维度计数 支持的数据类型
InputTensor 输入 { InputDimensions[] } 1 到 8 FLOAT32、FLOAT16
ScaleTensor 输入 { ScaleDimensions[] } 1 到 8 FLOAT32、FLOAT16
BiasTensor 输入 { ScaleDimensions[] } 1 到 8 FLOAT32、FLOAT16
FusedAddTensor 可选输入 { InputDimensions[] } 1 到 8 FLOAT32、FLOAT16
OutputTensor 输出 { InputDimensions[] } 1 到 8 FLOAT32、FLOAT16
OutputMeanTensor 输出 { ScaleDimensions[] } 1 到 8 FLOAT32、FLOAT16
OutputVarianceTensor 输出 { ScaleDimensions[] } 1 到 8 FLOAT32、FLOAT16

要求

要求
Header directml.h

另请参阅