Freigeben über


DML_ROI_ALIGN_OPERATOR_DESC-Struktur (directml.h)

Führt einen ROI-Ausrichtungsvorgang aus, wie im Dokument Mask R-CNN beschrieben. Zusammengefasst extrahiert der Vorgang Feldkulturen aus dem Eingabeimage-Tensor und ändert sie in eine allgemeine Ausgabegröße, die von den letzten 2 Dimensionen von OutputTensor mit dem angegebenen InterpolationMode angegeben wird.

Syntax

struct DML_ROI_ALIGN_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *ROITensor;
  const DML_TENSOR_DESC  *BatchIndicesTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_REDUCE_FUNCTION    ReductionFunction;
  DML_INTERPOLATION_MODE InterpolationMode;
  FLOAT                  SpatialScaleX;
  FLOAT                  SpatialScaleY;
  FLOAT                  OutOfBoundsInputValue;
  UINT                   MinimumSamplesPerOutput;
  UINT                   MaximumSamplesPerOutput;
};

Member

InputTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die Eingabedaten mit Dimensionen { BatchCount, ChannelCount, InputHeight, InputWidth }enthält.

ROITensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die Roi-Daten (Regions of Interest) enthält. Die zulässigen Dimensionen von ROITensor sind { NumROIs, 4 }, { 1, NumROIs, 4 }oder { 1, 1, NumROIs, 4 }. Für jeden ROI sind die Werte die Koordinaten der oberen linken und unteren rechten Ecken in der Reihenfolge [x1, y1, x2, y2].

BatchIndicesTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die Batchindizes enthält, aus denen die ROIs extrahiert werden sollen. Die zulässigen Dimensionen von BatchIndicesTensor sind { NumROIs }, { 1, NumROIs }, { 1, 1, NumROIs }oder { 1, 1, 1, NumROIs }. Jeder Wert ist der Index eines Batches von InputTensor. Das Verhalten ist nicht definiert, wenn sich die Werte nicht im Bereich [0, BatchCount) befinden.

OutputTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die Ausgabedaten enthält. Die erwarteten Dimensionen von OutputTensor sind { NumROIs, ChannelCount, OutputHeight, OutputWidth }.

ReductionFunction

Typ: DML_REDUCE_FUNCTION

Die Reduzierungsfunktion, die beim Reduzieren über alle Eingabebeispiele hinweg verwendet werden soll, die zu einem Ausgabeelement beitragen (DML_REDUCE_FUNCTION_AVERAGE oder DML_REDUCE_FUNCTION_MAX). Die Anzahl der Eingabebeispiele, über die reduziert werden soll, wird durch MinimumSamplesPerOutput und MaximumSamplesPerOutput begrenzt.

InterpolationMode

Typ: DML_INTERPOLATION_MODE

Der Interpolationsmodus, der beim Ändern der Größe der Regionen verwendet werden soll.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Verwendet den Nearest Neighbor-Algorithmus , der das Eingabeelement auswäht, das dem entsprechenden Pixelzentrum für jedes Ausgabeelement am nächsten liegt.
  • DML_INTERPOLATION_MODE_LINEAR. Verwendet den bilinearen Algorithmus, der das Ausgabeelement berechnet, indem er den gewichteten Durchschnitt der 2 nächstgelegenen benachbarten Eingabeelemente pro Dimension ausführt. Da nur 2 Dimensionen geändert werden, wird der gewichtete Mittelwert für insgesamt 4 Eingabeelemente für jedes Ausgabeelement berechnet.

SpatialScaleX

Typ: FLOAT

Die X-Komponente (oder Breite) des Skalierungsfaktors, um die ROITensor-Koordinaten mit zu multiplizieren, um sie proportional zu InputHeight und InputWidth zu machen. Wenn ROITensor beispielsweise normalisierte Koordinaten (Werte im Bereich [0..1]) enthält, hat SpatialScaleX in der Regel den gleichen Wert wie InputWidth.

SpatialScaleY

Typ: FLOAT

Die Y-Komponente (oder Höhe) des Skalierungsfaktors, um die ROITensor-Koordinaten mit zu multiplizieren, um sie proportional zu InputHeight und InputWidth zu machen. Wenn ROITensor beispielsweise normalisierte Koordinaten (Werte im Bereich [0..1]) enthält, hat SpatialScaleY in der Regel den gleichen Wert wie InputHeight.

OutOfBoundsInputValue

Typ: FLOAT

Der Wert, der aus InputTensor gelesen werden soll, wenn sich die ROIs außerhalb der Grenzen von InputTensor befinden. Dies kann vorkommen, wenn die werte, die nach der Skalierung von ROITensor von SpatialScaleX und SpatialScaleY abgerufen wurden, größer als InputWidth und InputHeight sind.

MinimumSamplesPerOutput

Typ: UINT

Die Mindestanzahl von Eingabebeispielen, die für jedes Ausgabeelement verwendet werden sollen. Der Operator berechnet die Anzahl der Eingabebeispiele, indem er ausführt ScaledCropSize / OutputSize, und klemmt sie dann an MinimumSamplesPerOutput und MaximumSamplesPerOutput.

MaximumSamplesPerOutput

Typ: UINT

Die maximale Anzahl von Eingabebeispielen, die für jedes Ausgabeelement verwendet werden sollen. Der Operator berechnet die Anzahl der Eingabebeispiele, indem er ausführt ScaledCropSize / OutputSize, und klemmt sie dann an MinimumSamplesPerOutput und MaximumSamplesPerOutput.

Verfügbarkeit

Dieser Operator wurde in DML_FEATURE_LEVEL_3_0eingeführt.

Tensoreinschränkungen

InputTensor, OutputTensor und ROITensor müssen denselben DataType aufweisen.

Tensorunterstützung

DML_FEATURE_LEVEL_5_0 und höher

Tensor Typ Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 4 FLOAT32, FLOAT16
ROITensor Eingabe 2 bis 4 FLOAT32, FLOAT16
BatchIndicesTensor Eingabe 1 bis 4 UINT64, UINT32
OutputTensor Ausgabe 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 und höher

Tensor Typ Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 4 FLOAT32, FLOAT16
ROITensor Eingabe 2 bis 4 FLOAT32, FLOAT16
BatchIndicesTensor Eingabe 1 bis 4 UINT32
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