Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 |