DML_MAX_POOLING2_OPERATOR_DESC-Struktur (directml.h)
Berechnet den Maximalwert für die Elemente innerhalb des gleitenden Fensters über den Eingabe tensor und gibt optional die Indizes der ausgewählten Maximalwerte zurück.
Syntax
struct DML_MAX_POOLING2_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputIndicesTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *WindowSize;
const UINT *StartPadding;
const UINT *EndPadding;
const UINT *Dilations;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Ein Eingabe tensor von Sizes{ BatchCount, ChannelCount, Height, Width }
, wenn InputTensor.DimensionCount den Wert 4 und { BatchCount, ChannelCount, Depth, Height, Weight }
InputTensor.DimensionCount den Wert 5 aufweist.
OutputTensor
Typ: const DML_TENSOR_DESC*
Ein Ausgabe tensor, in den die Ergebnisse geschrieben werden sollen. Die Größen des Ausgabe tensors können wie folgt berechnet werden.
OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];
for (UINT i = 0; i < DimensionCount; ++i) {
UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}
OutputIndicesTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Ausgabe tensor von Indizes für den Eingabe tensor InputTensor der im OutputTensor erzeugten und gespeicherten Maximalwerte. Diese Indexwerte sind nullbasiert und behandeln den Eingabe tensor als zusammenhängendes eindimensionales Array. Wenn mehrere Elemente innerhalb des gleitenden Fensters denselben Wert haben, werden die späteren gleichen Werte ignoriert, und der Index zeigt auf den ersten gefundenen Wert. Sowohl outputTensor als auch OutputIndicesTensor haben die gleichen Tensorgrößen.
DimensionCount
Typ: UINT
Die Anzahl der räumlichen Dimensionen des Eingabe tensors InputTensor, die auch der Anzahl der Dimensionen des gleitenden Fensters WindowSize entspricht. Dieser Wert bestimmt auch die Größe der Arrays Strides, StartPadding und EndPadding . Es sollte auf 2 festgelegt werden, wenn InputTensor 4D ist, und 3, wenn es sich um einen 5D-Tensor handelt.
Strides
Typ: _Field_size_(DimensionCount) const UINT*
Die Schritte für die gleitenden Fensterdimensionen von Größen { Height, Width }
, wenn DimensionCount auf 2 oder { Depth, Height, Width }
auf 3 festgelegt ist.
WindowSize
Typ: _Field_size_(DimensionCount) const UINT*
Die Dimensionen des gleitenden Fensters in { Height, Width }
, wenn DimensionCount auf 2 oder { Depth, Height, Width }
3 festgelegt ist.
StartPadding
Typ: _Field_size_(DimensionCount) const UINT*
Die Anzahl der Abstandselemente, die am Anfang jeder räumlichen Dimension des Eingabe tensors InputTensor angewendet werden sollen. Die Werte befinden sich in { Height, Width }
, wenn DimensionCount auf 2 oder { Depth, Height, Width }
auf 3 festgelegt ist.
EndPadding
Typ: _Field_size_(DimensionCount) const UINT*
Die Anzahl der Abstandselemente, die am Ende jeder räumlichen Dimension des Eingabe tensors InputTensor angewendet werden sollen. Die Werte befinden sich in { Height, Width }
, wenn DimensionCount auf 2 oder { Depth, Height, Width }
auf 3 festgelegt ist.
Dilations
Typ: _Field_size_(DimensionCount) const UINT*
Die Werte für jede räumliche Dimension des Eingabe tensors InputTensor , mit dem ein Element innerhalb des gleitenden Fensters für jedes Element dieses Werts ausgewählt wird. Die Werte befinden sich in { Height, Width }
, wenn DimensionCount auf 2 oder { Depth, Height, Width }
auf 3 festgelegt ist.
Hinweise
DML_MAX_POOLING2_OPERATOR_DESC ersetzt die frühere Version DML_MAX_POOLING_OPERATOR1_DESC durch zusätzliche Konstantenarrayerweiterungen. Die beiden Versionen sind gleichwertig, wenn Dilations für 4D-Eingaben oder { 1,1,1 }
für 5D-Eingabefeatures auf { 1,1 }
festgelegt ist.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_2_1
eingeführt.
Tensoreinschränkungen
- InputTensor, OutputIndicesTensor und OutputTensor müssen über dieselbe DimensionCount verfügen.
- InputTensor und OutputTensor müssen denselben Datentyp aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_5_0 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 bis 5 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Ausgabe | 4 bis 5 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputIndicesTensor | Optionale Ausgabe | 4 bis 5 | UINT64, UINT32 |
DML_FEATURE_LEVEL_3_0 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 bis 5 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputTensor | Ausgabe | 4 bis 5 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputIndicesTensor | Optionale Ausgabe | 4 bis 5 | UINT32 |
DML_FEATURE_LEVEL_2_1 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 bis 5 | FLOAT32, FLOAT16 |
OutputTensor | Ausgabe | 4 bis 5 | FLOAT32, FLOAT16 |
OutputIndicesTensor | Optionale Ausgabe | 4 bis 5 | UINT32 |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10, Version 2004 (10.0; Build 19041) |
Unterstützte Mindestversion (Server) | Windows Server, Version 2004 (10.0; Build 19041) |
Kopfzeile | directml.h |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für