Partager via


structure DML_BATCH_NORMALIZATION_OPERATOR_DESC (directml.h)

Effectue une normalisation par lot sur l’entrée. Cet opérateur effectue le calcul suivant : Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

Toute dimension dans MeanTensor, VarianceTensor, ScaleTensor et BiasTensor peut être définie sur 1 et être automatiquement diffusée pour correspondre à InputTensor, mais dans le cas contraire doit être égale à la taille de la dimension correspondante de InputTensor.

Syntaxe

struct DML_BATCH_NORMALIZATION_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *MeanTensor;
  const DML_TENSOR_DESC   *VarianceTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  BOOL                    Spatial;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée.

MeanTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données moyennes.

VarianceTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données variance.

ScaleTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données de mise à l’échelle.

BiasTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données Bias.

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur dans lequel écrire les résultats.

Spatial

Type : BOOL

TRUE pour spécifier que les emplacements sont spatiaux, sinon FALSE. La définition de cette valeur sur FALSE nécessite que les dimensions Width et Height de MeanTensor et VarianceTensor ne soient pas diffusées. Ce paramètre a été déprécié dans DML_FEATURE_LEVEL_4_0 et n’a aucun effet.

Epsilon

Type : FLOAT

Valeur epsilon à utiliser pour éviter la division par zéro.

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.

Disponibilité

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

Contraintes tensoriels

  • BiasTensor, InputTensor, MeanTensor, OutputTensor, ScaleTensor et VarianceTensor doivent avoir les mêmes DataType et DimensionCount.
  • InputTensor et OutputTensor doivent avoir les mêmes tailles.

Prise en charge des tenseurs

DML_FEATURE_LEVEL_3_1 et versions ultérieures

Tenseur Type Dimensions Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée { InputDimensions[] } 1 à 8 FLOAT32, FLOAT16
MeanTensor Entrée { MeanDimensions[] } 1 à 8 FLOAT32, FLOAT16
VarianceTensor Entrée { VarianceDimensions[] } 1 à 8 FLOAT32, FLOAT16
ScaleTensor Entrée { ScaleDimensions[] } 1 à 8 FLOAT32, FLOAT16
BiasTensor Entrée { BiasDimensions[] } 1 à 8 FLOAT32, FLOAT16
OutputTensor Output { InputDimensions[] } 1 à 8 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_1_0 et versions ultérieures

Tenseur Type Dimensions Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée { InputDimensions[] } 4 FLOAT32, FLOAT16
MeanTensor Entrée { MeanDimensions[] } 4 FLOAT32, FLOAT16
VarianceTensor Entrée { VarianceDimensions[] } 4 FLOAT32, FLOAT16
ScaleTensor Entrée { ScaleDimensions[] } 4 FLOAT32, FLOAT16
BiasTensor Entrée { BiasDimensions[] } 4 FLOAT32, FLOAT16
OutputTensor Output { InputDimensions[] } 4 FLOAT32, FLOAT16

Spécifications

   
En-tête directml.h

Voir aussi