Share via


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_1eingefü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

Weitere Informationen