estructura DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC (directml.h)
Realiza una función de normalización de varianza media en el tensor de entrada. Este operador calculará la media y la varianza del tensor de entrada para realizar la normalización. Este operador realiza el siguiente cálculo.
Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).
Sintaxis
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;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de entrada. Las dimensiones de este tensor deben ser { BatchCount, ChannelCount, Height, Width }
.
ScaleTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de escala. Las dimensiones de este tensor deben ser { BatchCount, ChannelCount, Height, Width }
. Cualquier dimensión se puede reemplazar por 1 para difundir en esa dimensión. Si DML_FEATURE_LEVEL es menor que DML_FEATURE_LEVEL_5_2, este tensor es necesario si BiasTensor está presente. Si DML_FEATURE_LEVEL es mayor o igual que DML_FEATURE_LEVEL_5_2, este tensor puede ser null independientemente del valor de BiasTensor.
BiasTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de sesgo. Las dimensiones de este tensor deben ser { BatchCount, ChannelCount, Height, Width }
. Cualquier dimensión se puede reemplazar por 1 para difundir en esa dimensión. Si DML_FEATURE_LEVEL es menor que DML_FEATURE_LEVEL_5_2, este tensor es necesario si ScaleTensor está presente. Si DML_FEATURE_LEVEL es mayor o igual que DML_FEATURE_LEVEL_5_2, este tensor puede ser null independientemente del valor de ScaleTensor.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados. Las dimensiones de este tensor son { BatchCount, ChannelCount, Height, Width }
.
CrossChannel
Tipo: BOOL
Cuando es TRUE, la capa MeanVariance incluye canales en los cálculos de media y varianza, lo que significa que se normalizan entre ejes {ChannelCount, Height, Width}
. Cuando es FALSE, los cálculos de media y varianza se normalizan entre ejes {Height, Width}
, y cada canal es independiente.
NormalizeVariance
Tipo: BOOL
TRUE si la capa de normalización incluye varianza en el cálculo de normalización. De lo contrario, FALSE. Si es FALSE, la ecuación de normalización es Output = FusedActivation(Scale * (Input - Mean) + Bias)
.
Epsilon
Tipo: FLOAT
Valor epsilon que se va a usar para evitar la división por cero. Se recomienda un valor de 0,00001 como valor predeterminado.
FusedActivation
Tipo: _Maybenull_ const DML_OPERATOR_DESC*
Una capa de activación fusionada opcional que se aplicará después de la normalización. Para obtener más información, consulta Uso de operadores fusionados para mejorar el rendimiento.
Comentarios
Se introdujo una versión más reciente de este operador, DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC, en DML_FEATURE_LEVEL_2_1
.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_1_0
.
Restricciones tensor
- InputTensor y OutputTensor deben tener los mismos tamaños.
- BiasTensor, InputTensor, OutputTensor y ScaleTensor deben tener el mismo Tipo de datos.
Compatibilidad con Tensor
Tensor | Clase | Dimensions | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
InputTensor | Entrada | { BatchCount, ChannelCount, Height, Width } | 4 | FLOAT32, FLOAT16 |
ScaleTensor | Entrada opcional | { ScaleBatchCount, ScaleChannelCount, ScaleHeight, ScaleWidth } | 4 | FLOAT32, FLOAT16 |
BiasTensor | Entrada opcional | { BiasBatchCount, BiasChannelCount, BiasHeight, BiasWidth } | 4 | FLOAT32, FLOAT16 |
OutputTensor | Resultados | { BatchCount, ChannelCount, Height, Width } | 4 | FLOAT32, FLOAT16 |
Requisitos
Encabezado | directml.h |