Share via


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