Share via


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

Weitere Informationen