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
。
张量约束
- InputTensor 和 OutputTensor 必须具有相同 的大小。
- BiasTensor、 InputTensor、 OutputTensor 和 ScaleTensor 必须具有相同 的数据类型。
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 |