DML_BATCH_NORMALIZATION_OPERATOR_DESC 结构 (directml.h)
对输入执行批量规范化。 此运算符执行以下计算: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias)
。
MeanTensor、VarianceTensor、ScaleTensor 和 BiasTensor 中的任何维度都可以设置为 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 需要 不广播 MeanTensor 和 VarianceTensor 的 Width 和 Height 维度。 此参数在 DML_FEATURE_LEVEL_4_0 中已弃用,不起作用。
Epsilon
类型: FLOAT
用于避免除以零的 epsilon 值。
FusedActivation
类型:_Maybenull_ const DML_OPERATOR_DESC*
在规范化后应用的可选融合激活层。 有关详细信息,请参阅 使用融合运算符提高性能。
可用性
此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0
。
张量约束
- BiasTensor、 InputTensor、 MeanTensor、 OutputTensor、 ScaleTensor 和 VarianceTensor 必须具有相同 的 DataType 和 DimensionCount。
- InputTensor 和 OutputTensor 必须具有相同 的大小。
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 |