DML_BATCH_NORMALIZATION_OPERATOR_DESC 结构 (directml.h)

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

MeanTensorVarianceTensorScaleTensorBiasTensor 中的任何维度都可以设置为 1,并自动广播以匹配 InputTensor,但否则必须等于 InputTensor 中相应维度的大小。

语法

struct DML_BATCH_NORMALIZATION_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *MeanTensor;
  const DML_TENSOR_DESC   *VarianceTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  BOOL                    Spatial;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

成员

InputTensor

类型: const DML_TENSOR_DESC*

包含输入数据的张量。

MeanTensor

类型: const DML_TENSOR_DESC*

包含 Mean 数据的张量。

VarianceTensor

类型: const DML_TENSOR_DESC*

包含方差数据的张量。

ScaleTensor

类型: const DML_TENSOR_DESC*

包含 Scale 数据的张量。

BiasTensor

类型: const DML_TENSOR_DESC*

包含偏差数据的张量。

OutputTensor

类型: const DML_TENSOR_DESC*

要向其写入结果的张量。

Spatial

类型: BOOL

如果 指定位置为空间,则为 TRUE,否则 为 FALSE。 将此设置为 FALSE 需要 不广播 MeanTensorVarianceTensor 的 Width 和 Height 维度。 此参数在 DML_FEATURE_LEVEL_4_0 中已弃用,不起作用。

Epsilon

类型: FLOAT

用于避免除以零的 epsilon 值。

FusedActivation

类型:_Maybenull_ const DML_OPERATOR_DESC*

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

可用性

此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0

张量约束

  • BiasTensorInputTensorMeanTensorOutputTensorScaleTensorVarianceTensor 必须具有相同 的 DataTypeDimensionCount
  • InputTensorOutputTensor 必须具有相同 的大小

Tensor 支持

DML_FEATURE_LEVEL_3_1及更高版本

种类 维度 支持的维度计数 支持的数据类型
InputTensor 输入 { InputDimensions[] } 1 到 8 FLOAT32、FLOAT16
MeanTensor 输入 { MeanDimensions[] } 1 到 8 FLOAT32、FLOAT16
VarianceTensor 输入 { VarianceDimensions[] } 1 到 8 FLOAT32、FLOAT16
ScaleTensor 输入 { ScaleDimensions[] } 1 到 8 FLOAT32、FLOAT16
BiasTensor 输入 { BiasDimensions[] } 1 到 8 FLOAT32、FLOAT16
OutputTensor 输出 { InputDimensions[] } 1 到 8 FLOAT32、FLOAT16

DML_FEATURE_LEVEL_1_0 及更高版本

种类 维度 支持的维度计数 支持的数据类型
InputTensor 输入 { InputDimensions[] } 4 FLOAT32、FLOAT16
MeanTensor 输入 { MeanDimensions[] } 4 FLOAT32、FLOAT16
VarianceTensor 输入 { VarianceDimensions[] } 4 FLOAT32、FLOAT16
ScaleTensor 输入 { ScaleDimensions[] } 4 FLOAT32、FLOAT16
BiasTensor 输入 { BiasDimensions[] } 4 FLOAT32、FLOAT16
OutputTensor 输出 { InputDimensions[] } 4 FLOAT32、FLOAT16

要求

   
标头 directml.h

请参阅