Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_1
eingefü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