Partager via


structure DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC (directml.h)

Exécute une fonction de normalisation de la variance moyenne sur le tenseur d’entrée. Cet opérateur calcule la moyenne et la variance du tenseur d’entrée pour effectuer la normalisation. Cet opérateur effectue le calcul suivant.

Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

Syntaxe

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;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée. Les dimensions de ce tenseur doivent être { BatchCount, ChannelCount, Height, Width }.

ScaleTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif contenant les données de mise à l’échelle. Les dimensions de ce tenseur doivent être { BatchCount, ChannelCount, Height, Width }. N’importe quelle dimension peut être remplacée par 1 pour diffuser dans cette dimension. Si DML_FEATURE_LEVEL est inférieur à DML_FEATURE_LEVEL_5_2, ce tenseur est obligatoire si BiasTensor est présent. Si DML_FEATURE_LEVEL est supérieur ou égal à DML_FEATURE_LEVEL_5_2, ce tenseur peut être null quelle que soit la valeur de BiasTensor.

BiasTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif contenant les données de biais. Les dimensions de ce tenseur doivent être { BatchCount, ChannelCount, Height, Width }. N’importe quelle dimension peut être remplacée par 1 pour diffuser dans cette dimension. Si DML_FEATURE_LEVEL est inférieur à DML_FEATURE_LEVEL_5_2, ce tenseur est obligatoire si ScaleTensor est présent. Si DML_FEATURE_LEVEL est supérieur ou égal à DML_FEATURE_LEVEL_5_2, ce tenseur peut être null quelle que soit la valeur de ScaleTensor.

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur dans lequel écrire les résultats. Les dimensions de ce tenseur sont { BatchCount, ChannelCount, Height, Width }.

CrossChannel

Type : BOOL

Lorsqu’elle est TRUE, la couche MeanVariance inclut des canaux dans les calculs de moyenne et de variance, ce qui signifie qu’ils sont normalisés entre les axes {ChannelCount, Height, Width}. Lorsque la valeur EST FALSE, les calculs de moyenne et de variance sont normalisés entre les axes {Height, Width} , chaque canal étant indépendant.

NormalizeVariance

Type : BOOL

TRUE si la couche de normalisation inclut variance dans le calcul de normalisation. Sinon, FALSE. Si la valeur est FALSE, l’équation de normalisation est Output = FusedActivation(Scale * (Input - Mean) + Bias).

Epsilon

Type : FLOAT

Valeur epsilon à utiliser pour éviter la division par zéro. La valeur par défaut 0,00001 est recommandée.

FusedActivation

Type : _Maybenull_ const DML_OPERATOR_DESC*

Couche d’activation fusionnée facultative à appliquer après la normalisation. Pour plus d’informations, consultez Utilisation d’opérateurs fusionnés pour améliorer les performances.

Remarques

Une version plus récente de cet opérateur, DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC, a été introduite dans DML_FEATURE_LEVEL_2_1.

Disponibilité

Cet opérateur a été introduit dans DML_FEATURE_LEVEL_1_0.

Contraintes tensoriels

  • InputTensor et OutputTensor doivent avoir les mêmes tailles.
  • BiasTensor, InputTensor, OutputTensor et ScaleTensor doivent avoir le même DataType.

Prise en charge de Tensor

Tenseur Genre Dimensions Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée { BatchCount, ChannelCount, Height, Width } 4 FLOAT32, FLOAT16
ScaleTensor Entrée facultative { ScaleBatchCount, ScaleChannelCount, ScaleHeight, ScaleWidth } 4 FLOAT32, FLOAT16
BiasTensor Entrée facultative { BiasBatchCount, BiasChannelCount, BiasHeight, BiasWidth } 4 FLOAT32, FLOAT16
OutputTensor Sortie { BatchCount, ChannelCount, Height, Width } 4 FLOAT32, FLOAT16

Configuration requise

   
En-tête directml.h

Voir aussi