Compartir a través de


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

Consulte también