Freigeben über


DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC-Struktur (directml.h)

Führt eine Mittlere Varianznormalisierungsfunktion für den Eingabe tensor aus. Dieser Operator berechnet den Mittelwert und die Varianz des Eingabe-Tensors, um die Normalisierung durchzuführen. Dieser Operator führt die folgende Berechnung aus.

Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

Syntax

struct DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  UINT                    AxisCount;
  const UINT              *Axes;
  BOOL                    NormalizeVariance;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

Member

InputTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die Eingabedaten enthält. Die Dimensionen dieses Tensors sollten sein { BatchCount, ChannelCount, Height, Width }.

ScaleTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Ein optionaler Tensor, der die Skalierungsdaten enthält.

Wenn DML_FEATURE_LEVEL kleiner als DML_FEATURE_LEVEL_4_0 ist, sollten die Dimensionen dieses Tensors sein { ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }. Die Dimensionen ScaleBatchCount, ScaleHeight und ScaleWidth sollten entweder Mit InputTensor übereinstimmen oder auf 1 festgelegt werden, um diese Dimensionen automatisch über die Eingabe zu übertragen.

Wenn DML_FEATURE_LEVEL größer oder gleich DML_FEATURE_LEVEL_4_0 ist, kann jede Dimension auf 1 festgelegt und automatisch so gesendet werden, dass sie Mit InputTensor übereinstimmt.

Wenn DML_FEATURE_LEVEL kleiner als DML_FEATURE_LEVEL_5_2 ist, ist dieser Tensor erforderlich, wenn BiasTensor vorhanden ist. Wenn DML_FEATURE_LEVEL größer oder gleich DML_FEATURE_LEVEL_5_2 ist, kann dieser Tensor unabhängig vom Wert von BiasTensor NULL sein.

BiasTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Ein optionaler Tensor, der die Bias-Daten enthält.

Wenn DML_FEATURE_LEVEL kleiner als DML_FEATURE_LEVEL_4_0 ist, sollten die Dimensionen dieses Tensors sein { BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }. Die Dimensionen BiasBatchCount, BiasHeight und BiasWidth sollten entweder Mit InputTensor übereinstimmen oder auf 1 festgelegt werden, um diese Dimensionen automatisch über die Eingabe zu übertragen.

Wenn DML_FEATURE_LEVEL größer oder gleich DML_FEATURE_LEVEL_4_0 ist, kann jede Dimension auf 1 festgelegt und automatisch so gesendet werden, dass sie Mit InputTensor übereinstimmt.

Wenn DML_FEATURE_LEVEL kleiner als DML_FEATURE_LEVEL_5_2 ist, ist dieser Tensor erforderlich, wenn ScaleTensor vorhanden ist. Wenn DML_FEATURE_LEVEL größer oder gleich DML_FEATURE_LEVEL_5_2 ist, kann dieser Tensor unabhängig vom Wert von ScaleTensor NULL sein.

OutputTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, in den die Ergebnisse geschrieben werden sollen. Die Dimensionen dieses Tensors sind { BatchCount, ChannelCount, Height, Width }.

AxisCount

Typ: UINT

Die Anzahl der Achsen. Dieses Feld bestimmt die Größe des Axes-Arrays .

Axes

Typ: _Field_size_(AxisCount) const UINT*

Die Achsen, auf denen der Mittelwert und die Varianz berechnet werden sollen.

NormalizeVariance

Typ: BOOL

TRUE , wenn die Normalisierungsebene Variance in die Normalisierungsberechnung einschließt. Andernfalls FALSE. Wenn FALSE, ist die Normalisierungsgleichung Output = FusedActivation(Scale * (Input - Mean) + Bias).

Epsilon

Typ: FLOAT

Der Epsilonwert, der verwendet werden soll, um eine Aufteilung durch null zu vermeiden. Als Standard wird der Wert 0,00001 empfohlen.

FusedActivation

Typ: _Maybenull_ const DML_OPERATOR_DESC*

Eine optionale fusionierte Aktivierungsebene, die nach der Normalisierung angewendet werden soll.

Hinweise

DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC ist eine Übermenge der Funktionalität von DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC. Das Festlegen des Axes-Arrays auf { 2, 3 } entspricht hier dem Festlegen von CrossChannel auf FALSE in DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC. Das Festlegen des Achsenarrays auf { 1, 2, 3 } entspricht dem Festlegen von CrossChannel auf TRUE.

Verfügbarkeit

Dieser Operator wurde in DML_FEATURE_LEVEL_2_1eingeführt.

Tensoreinschränkungen

BiasTensor, InputTensor, OutputTensor und ScaleTensor müssen über denselben DataType und DimensionCount verfügen.

Tensorunterstützung

DML_FEATURE_LEVEL_3_1 und höher

Tensor Art Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 1 bis 8 FLOAT32, FLOAT16
ScaleTensor Optionale Eingabe 1 bis 8 FLOAT32, FLOAT16
BiasTensor Optionale Eingabe 1 bis 8 FLOAT32, FLOAT16
OutputTensor Ausgabe 1 bis 8 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_1 und höher

Tensor Art Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 4 FLOAT32, FLOAT16
ScaleTensor Optionale Eingabe 4 FLOAT32, FLOAT16
BiasTensor Optionale Eingabe 4 FLOAT32, FLOAT16
OutputTensor Ausgabe 4 FLOAT32, FLOAT16

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile directml.h

Siehe auch

Verwenden von fusionierten Operatoren für verbesserte Leistung