Compartir a través de


estructura DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC (directml.h)

Calcula los degradados de la propiedad inversa para la normalización por lotes. DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC realiza varios cálculos, que se detallan en las descripciones de salida independientes.

OutputScaleGradientTensor y OutputBiasGradientTensor se calculan mediante sumas en el conjunto de dimensiones para las que los tamaños MeanTensor, ScaleTensor y VarianceTensor son iguales a uno.

Sintaxis

struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *MeanTensor;
  const DML_TENSOR_DESC *VarianceTensor;
  const DML_TENSOR_DESC *ScaleTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  const DML_TENSOR_DESC *OutputScaleGradientTensor;
  const DML_TENSOR_DESC *OutputBiasGradientTensor;
  FLOAT                 Epsilon;
};

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de entrada. Normalmente, este es el mismo tensor que se proporcionó como InputTensor para DML_BATCH_NORMALIZATION_OPERATOR_DESC en el pase hacia delante.

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de degradado entrante. Esto se obtiene normalmente a partir de la salida de la propiedad backpropagation de una capa anterior.

MeanTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos medio. Normalmente, este es el mismo tensor que se proporcionó como MeanTensor para DML_BATCH_NORMALIZATION_OPERATOR_DESC en el pase hacia delante.

VarianceTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de varianza. Normalmente, este es el mismo tensor que se proporcionó como VarianceTensor para DML_OPERATOR_BATCH_NORMALIZATION en el pase hacia delante.

ScaleTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de escala. Normalmente, este es el mismo tensor que se proporcionó como ScaleTensor para DML_BATCH_NORMALIZATION_OPERATOR_DESC en el pase hacia delante.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Para cada valor correspondiente de las entradas, OutputGradient = InputGradient * (Scale / sqrt(Variance + Epsilon)).

OutputScaleGradientTensor

Tipo: const DML_TENSOR_DESC*

El siguiente cálculo se realiza o cada valor correspondiente de las entradas.

OutputScaleGradient = sum(InputGradient * (Input - Mean) / sqrt(Variance + Epsilon))

OutputBiasGradientTensor

Tipo: const DML_TENSOR_DESC*

El siguiente cálculo se realiza o cada valor correspondiente de las entradas.

OutputBiasGradient = sum(InputGradient)

Epsilon

Tipo: FLOAT

Valor pequeño agregado a la varianza para evitar cero.

Comentarios

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_3_1.

Restricciones tensor

  • InputGradientTensor, InputTensor, MeanTensor, OutputBiasGradientTensor, OutputGradientTensor, OutputScaleGradientTensor, ScaleTensor y VarianceTensor deben tener el mismo DataType y DimensionCount.
  • MeanTensor, OutputBiasGradientTensor, OutputScaleGradientTensor, ScaleTensor y VarianceTensor deben tener los mismos tamaños.
  • InputGradientTensor, InputTensor y OutputGradientTensor deben tener los mismos tamaños.

Compatibilidad con Tensor

Tensor Clase Dimensions Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada { InputDimensions[] } De 1 a 8 FLOAT32, FLOAT16
InputGradientTensor Entrada { InputDimensions[] } De 1 a 8 FLOAT32, FLOAT16
MeanTensor Entrada { MeanDimensions[] } De 1 a 8 FLOAT32, FLOAT16
VarianceTensor Entrada { MeanDimensions[] } De 1 a 8 FLOAT32, FLOAT16
ScaleTensor Entrada { MeanDimensions[] } De 1 a 8 FLOAT32, FLOAT16
OutputGradientTensor Resultados { InputDimensions[] } De 1 a 8 FLOAT32, FLOAT16
OutputScaleGradientTensor Resultados { MeanDimensions[] } De 1 a 8 FLOAT32, FLOAT16
OutputBiasGradientTensor Resultados { MeanDimensions[] } De 1 a 8 FLOAT32, FLOAT16

Requisitos

Requisito Value
Cliente mínimo compatible Compilación 22000 de Windows
Servidor mínimo compatible Compilación 22000 de Windows
Encabezado directml.h