structure DML_BATCH_NORMALIZATION_TRAINING_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 + FusedAdd)
.
Toute dimension dans 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. MeanTensor et VarianceTensor sont calculés sur l’entrée dans l’ensemble de dimensions pour lesquelles les tailles ScaleTensor et BiasTensor sont égales à une.
Syntaxe
struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *FusedAddTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputMeanTensor;
const DML_TENSOR_DESC *OutputVarianceTensor;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les données d’entrée.
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.
FusedAddTensor
Type : _Maybenull_ const DML_TENSOR_DESC*
Tenseur facultatif contenant des données ajoutées au résultat avant FusedActivation, le cas échéant.
OutputTensor
Type : const DML_TENSOR_DESC*
Tenseur dans lequel écrire les résultats.
OutputMeanTensor
Type : const DML_TENSOR_DESC*
Tenseur dans lequel écrire la moyenne de l’entrée.
OutputVarianceTensor
Type : const DML_TENSOR_DESC*
Tenseur dans lequel écrire la variance de l’entrée.
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.
Remarques
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_4_1
.
Contraintes tensoriels
- BiasTensor, FusedAddTensor, InputTensor, OutputMeanTensor, OutputTensor, OutputVarianceTensor et ScaleTensor doivent avoir les mêmes DataType et DimensionCount.
- BiasTensor, OutputMeanTensor, OutputVarianceTensor et ScaleTensor doivent avoir les mêmes tailles.
- FusedAddTensor, InputTensor et OutputTensor doivent avoir les mêmes tailles.
Prise en charge des tenseurs
DML_FEATURE_LEVEL_4_1 et versions ultérieures
Tenseur | Genre | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
InputTensor | Entrée | { InputDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
ScaleTensor | Entrée | { ScaleDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
BiasTensor | Entrée | { ScaleDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
FusedAddTensor | Entrée facultative | { InputDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
OutputTensor | Sortie | { InputDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
OutputMeanTensor | Sortie | { ScaleDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
OutputVarianceTensor | Sortie | { ScaleDimensions[] } | 1 à 8 | FLOAT32, FLOAT16 |
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | directml.h |