estructura DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC (directml.h)
Realiza una normalización por lotes en la entrada. Este operador realiza el siguiente cálculo: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias + FusedAdd)
.
Cualquier dimensión de ScaleTensor y BiasTensor se puede establecer en 1 y se puede difundir automáticamente para que coincida con InputTensor, pero de lo contrario debe ser igual al tamaño de la dimensión correspondiente de InputTensor. MeanTensor y VarianceTensor se calculan en la entrada en el conjunto de dimensiones para las que los tamaños ScaleTensor y BiasTensor son iguales a uno.
Sintaxis
struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *FusedAddTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputMeanTensor;
const DML_TENSOR_DESC *OutputVarianceTensor;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de entrada.
ScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de escala.
BiasTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos bias.
FusedAddTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene datos que se agregan al resultado antes de FusedActivation, si existe.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados.
OutputMeanTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se va a escribir la media de la entrada.
OutputVarianceTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se va a escribir la varianza de la entrada.
Epsilon
Tipo: FLOAT
Valor epsilon que se va a usar para evitar la división por cero.
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
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_4_1
.
Restricciones tensor
- BiasTensor, MergedAddTensor, InputTensor, OutputMeanTensor, OutputTensor, OutputVarianceTensor y ScaleTensor deben tener el mismo DataType y DimensionCount.
- BiasTensor, OutputMeanTensor, OutputVarianceTensor y ScaleTensor deben tener los mismos tamaños.
- FusedAddTensor, InputTensor y OutputTensor deben tener los mismos tamaños.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_4_1 y versiones posteriores
Tensor | Clase | Dimensions | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
InputTensor | Entrada | { InputDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
ScaleTensor | Entrada | { ScaleDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
BiasTensor | Entrada | { ScaleDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
FusedAddTensor | Entrada opcional | { InputDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
OutputTensor | Resultados | { InputDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
OutputMeanTensor | Resultados | { ScaleDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
OutputVarianceTensor | Resultados | { ScaleDimensions[] } | De 1 a 8 | FLOAT32, FLOAT16 |
Requisitos
Requisito | Valor |
---|---|
Header | directml.h |