Freigeben über


DML_ROI_POOLING_OPERATOR_DESC-Struktur (directml.h)

Führt eine MaxPool-Funktion über den Eingabe tensor hinweg aus (entsprechend den relevanten Regionen oder ROIs). Für jedes Ausgabeelement werden die Koordinaten des entsprechenden ROI in der Eingabe durch die folgenden Formeln berechnet.

Lassen Sie Y einen Index in die dritte Dimension von InputTensor ({ BatchSize, ChannelCount, **height**, width }) einfügen.

Lassen Sie einen X Index in die vierte Dimension von InputTensor ({ BatchSize, ChannelCount, height, **width** }) ein.

x1 = round(RoiX1 * SpatialScale)
x2 = round(RoiX2 * SpatialScale)
y1 = round(RoiY1 * SpatialScale)
y2 = round(RoiY2 * SpatialScale)

RegionHeight = y2 - y1 + 1
RegionWidth = x2 - x1 + 1

StartY = (OutputIndices.Y * RegionHeight) / PooledSize.Height + y1
StartX = (OutputIndices.X * RegionWidth) / PooledSize.Width + x1

EndY = ((OutputIndices.Y + 1) * RegionHeight + PooledSize.Height - 1) / PooledSize.Height + y1
EndX = ((OutputIndices.X + 1) * RegionWidth + PooledSize.Width - 1) / PooledSize.Width + x1

Wenn die berechneten Koordinaten außerhalb der Grenzen liegen, werden sie an die Eingabegrenzen geklemmt.

Syntax

struct DML_ROI_POOLING_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *ROITensor;
  const DML_TENSOR_DESC *OutputTensor;
  FLOAT                 SpatialScale;
  DML_SIZE_2D           PooledSize;
};

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 erwarteten Dimensionen von ROITensor sind { 1, 1, NumROIs, 5 } und die Daten für jeden ROI sind [BatchID, x1, y1, x2, y2]. x1, y1, x2, y2 sind die inklusiven Koordinaten der Ecken jedes ROI und x2 >= x1, y2 >= y1.

OutputTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die Ausgabedaten enthält. Die erwarteten Dimensionen von OutputTensor sind { NumROIs, InputChannelCount, PooledSize.Height, PooledSize.Width }.

SpatialScale

Typ: FLOAT

Multipliktiver räumlicher Skalierungsfaktor, der verwendet wird, um die ROI-Koordinaten von ihrer Eingabeskala in die beim Pooling verwendete Skalierung zu übersetzen.

PooledSize

Typ: DML_SIZE_2D

Die Ausgabegröße des ROI-Pools (Höhe, Breite), die den letzten 2 Dimensionen von OutputTensor entsprechen muss.

Verfügbarkeit

Dieser Operator wurde in DML_FEATURE_LEVEL_1_0eingeführt.

Tensoreinschränkungen

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

Tensorunterstützung

Tensor Typ Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 4 FLOAT32, FLOAT16
ROITensor Eingabe 4 FLOAT32, FLOAT16
OutputTensor Ausgabe 4 FLOAT32, FLOAT16

Anforderungen

   
Kopfzeile directml.h