DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC 结构 (directml.h)
对输入张量执行平均方差规范化函数。 此运算符将计算输入张量的平均数和方差以执行规范化。 此运算符执行以下计算。
Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).
语法
struct DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT AxisCount;
const UINT *Axes;
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 数据的可选张量。
如果 DML_FEATURE_LEVEL 小于 DML_FEATURE_LEVEL_4_0,则此张量的尺寸应为 { ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }
。 维度 ScaleBatchCount、ScaleHeight 和 ScaleWidth 应匹配 InputTensor,或设置为 1 以自动广播整个输入中的这些维度。
如果 DML_FEATURE_LEVEL 大于或等于 DML_FEATURE_LEVEL_4_0,则可以将任何维度设置为 1,并自动广播以匹配 InputTensor。
如果 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*
包含偏差数据的可选张量。
如果 DML_FEATURE_LEVEL 小于 DML_FEATURE_LEVEL_4_0,则此张量的尺寸应为 { BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }
。 Dimensions BiasBatchCount、BiasHeight 和 BiasWidth 应匹配 InputTensor,或设置为 1 以自动跨输入广播这些维度。
如果 DML_FEATURE_LEVEL 大于或等于 DML_FEATURE_LEVEL_4_0,则可以将任何维度设置为 1,并自动广播以匹配 InputTensor。
如果 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 }
。
AxisCount
类型: UINT
轴数。 此字段确定 Axes 数组的大小。
Axes
类型:_Field_size_ (AxisCount) 常量 UINT*
要沿其计算平均值和方差的轴。
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_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC功能的超集。 此处,将 Axes 数组设置为 { 2, 3 }
等效于在 DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC 中将 CrossChannel 设置为 FALSE;而将 Axes 数组设置为 { 1, 2, 3 }
等效于将 CrossChannel 设置为 TRUE。
可用性
此运算符是在 中 DML_FEATURE_LEVEL_2_1
引入的。
张量约束
BiasTensor、 InputTensor、 OutputTensor 和 ScaleTensor 必须具有相同的 DataType 和 DimensionCount。
张量支持
DML_FEATURE_LEVEL_3_1 及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 1 到 8 | FLOAT32、FLOAT16 |
ScaleTensor | 可选输入 | 1 到 8 | FLOAT32、FLOAT16 |
BiasTensor | 可选输入 | 1 到 8 | FLOAT32、FLOAT16 |
OutputTensor | 输出 | 1 到 8 | FLOAT32、FLOAT16 |
DML_FEATURE_LEVEL_2_1 及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 | FLOAT32、FLOAT16 |
ScaleTensor | 可选输入 | 4 | FLOAT32、FLOAT16 |
BiasTensor | 可选输入 | 4 | FLOAT32、FLOAT16 |
OutputTensor | 输出 | 4 | FLOAT32、FLOAT16 |
要求
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
标头 | directml.h |