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 |