Compartir a través de


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

Consulte también