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.
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;
};
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.
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_1_0
.
- BiasTensor, InputTensor, MeanTensor, OutputTensor, ScaleTensor et VarianceTensor doivent avoir les mêmes DataType et DimensionCount.
- InputTensor et OutputTensor doivent avoir les mêmes tailles.
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 |
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 |
En-tête | directml.h |