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 |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour