DML_BATCH_NORMALIZATION_TRAINING_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 + FusedAdd)
.
Jede Dimension in ScaleTensor und BiasTensor kann auf 1 festgelegt und automatisch übertragen werden, um InputTensor zu entsprechen. Andernfalls muss die Größe der entsprechenden Dimension von InputTensor entsprechen. MeanTensor und VarianceTensor werden für die Eingabe für den Satz von Dimensionen berechnet, für die ScaleTensor - und BiasTensor-Größen eins sind.
Syntax
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;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Eingabedaten 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.
FusedAddTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der Daten enthält, die dem Ergebnis vor FusedActivation hinzugefügt werden, falls vorhanden.
OutputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, in den die Ergebnisse geschrieben werden sollen.
OutputMeanTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, in den der Mittelwert der Eingabe geschrieben werden soll.
OutputVarianceTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, in den die Varianz der Eingabe geschrieben werden soll.
Epsilon
Typ: FLOAT
Der Epsilonwert, der verwendet werden soll, um eine Aufteilung durch null zu vermeiden.
FusedActivation
Typ: _Maybenull_ const DML_OPERATOR_DESC*
Eine optionale fusionierte Aktivierungsebene, die nach der Normalisierung angewendet werden soll. Weitere Informationen finden Sie unter Verwenden von fusionierten Operatoren für verbesserte Leistung.
Hinweise
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_4_1
eingeführt.
Tensoreinschränkungen
- BiasTensor, FusedAddTensor, InputTensor, OutputMeanTensor, OutputTensor, OutputVarianceTensor und ScaleTensor müssen über denselben DataType und DimensionCount verfügen.
- BiasTensor, OutputMeanTensor, OutputVarianceTensor und ScaleTensor müssen dieselben Größen aufweisen.
- FusedAddTensor, InputTensor und OutputTensor müssen die gleichen Größen aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_4_1 und höher
Tensor | Variante | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { InputDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
ScaleTensor | Eingabe | { ScaleDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
BiasTensor | Eingabe | { ScaleDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
FusedAddTensor | Optionale Eingabe | { InputDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
OutputTensor | Ausgabe | { InputDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
OutputMeanTensor | Ausgabe | { ScaleDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
OutputVarianceTensor | Ausgabe | { ScaleDimensions[] } | 1 bis 8 | FLOAT32, FLOAT16 |
Anforderungen
Anforderung | Wert |
---|---|
Header | directml.h |