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 |