DML_BATCH_NORMALIZATION_OPERATOR_DESC-Struktur (directml.h)
Führt eine Batchnormalisierung für die Eingabe aus. Dieser Operator führt die folgende Berechnung aus: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias)
.
Jede Dimension in MeanTensor, VarianceTensor, ScaleTensor und BiasTensor kann auf 1 festgelegt und automatisch übertragen werden, um InputTensor zu entsprechen, muss aber andernfalls der Größe der entsprechenden Dimension von InputTensor entsprechen.
Syntax
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;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Eingabedaten enthält.
MeanTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Mittelwertdaten enthält.
VarianceTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Varianzdaten enthält.
ScaleTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Skalierungsdaten enthält.
BiasTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Bias-Daten enthält.
OutputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, in den die Ergebnisse geschrieben werden sollen.
Spatial
Typ: BOOL
TRUE , um anzugeben, dass die Standorte räumlich sind, andernfalls FALSE. Wenn Sie dies auf FALSE festlegen, müssen die Width- und Height-Dimensionen von MeanTensor und VarianceTensor nicht übertragen werden. Dieser Parameter wurde in DML_FEATURE_LEVEL_4_0 veraltet und hat keine Auswirkung.
Epsilon
Typ: FLOAT
Der epsilon-Wert, der verwendet werden soll, um eine Division durch 0 (null) zu vermeiden.
FusedActivation
Typ: _Maybenull_ const DML_OPERATOR_DESC*
Eine optionale verschmolzene Aktivierungsebene, die nach der Normalisierung angewendet werden soll. Weitere Informationen finden Sie unter Verwenden von Fusionsoperatoren zur Verbesserung der Leistung.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_1_0
eingeführt.
Tensoreinschränkungen
- BiasTensor, InputTensor, MeanTensor, OutputTensor, ScaleTensor und VarianceTensor müssen denselben DataType und DimensionCount aufweisen.
- InputTensor und OutputTensor müssen die gleichen Größen aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_3_1 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { InputDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
MeanTensor | Eingabe | { MeanDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
VarianceTensor | Eingabe | { VarianceDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
ScaleTensor | Eingabe | { ScaleDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
BiasTensor | Eingabe | { BiasDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
OutputTensor | Ausgabe | { InputDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_1_0 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { InputDimensions[] } | 4 | FLOAT32, FLOAT16 |
MeanTensor | Eingabe | { MeanDimensions[] } | 4 | FLOAT32, FLOAT16 |
VarianceTensor | Eingabe | { VarianceDimensions[] } | 4 | FLOAT32, FLOAT16 |
ScaleTensor | Eingabe | { ScaleDimensions[] } | 4 | FLOAT32, FLOAT16 |
BiasTensor | Eingabe | { BiasDimensions[] } | 4 | FLOAT32, FLOAT16 |
OutputTensor | Ausgabe | { InputDimensions[] } | 4 | FLOAT32, FLOAT16 |
Anforderungen
Kopfzeile | directml.h |