Condividi tramite


DML_ROI_POOLING_OPERATOR_DESC struttura (directml.h)

Esegue una funzione MaxPool nel tensore di input (in base alle aree di interesse o alle URI). Per ogni elemento di output, le coordinate del roi corrispondente nell'input vengono calcolate dalle equazioni seguenti.

Si supponga Y di essere un indice nella terza dimensione di InputTensor ({ BatchSize, ChannelCount, **height**, width }).

Si supponga X di essere un indice nella quarta dimensione di InputTensor ({ BatchSize, ChannelCount, height, **width** }).

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

Se le coordinate calcolate sono fuori limiti, vengono bloccate ai limiti di input.

Sintassi

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;
};

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati di input con dimensioni { BatchCount, ChannelCount, InputHeight, InputWidth }.

ROITensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente le aree di interesse (ROI). Le dimensioni previste di ROITensor sono { 1, 1, NumROIs, 5 } e i dati per ogni ROI sono [BatchID, x1, y1, x2, y2]. x1, y1, x2, y2 sono le coordinate inclusive degli angoli di ogni ROI e x2 >= x1, y2 >= y1.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati di output. Le dimensioni previste di OutputTensor sono { NumROIs, InputChannelCount, PooledSize.Height, PooledSize.Width }.

SpatialScale

Tipo: FLOAT

Fattore di scala spaziale moltiplicativo usato per tradurre le coordinate ROI dalla scala di input alla scala utilizzata durante il pooling.

PooledSize

Tipo: DML_SIZE_2D

Dimensioni dell'output del pool ROI (altezza, larghezza), che devono corrispondere alle ultime 2 dimensioni di OutputTensor.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_1_0.

Vincoli tensor

InputTensor, OutputTensor e ROITensor devono avere lo stesso tipo di dati.

Supporto di Tensor

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input 4 FLOAT32, FLOAT16
ROITensor Input 4 FLOAT32, FLOAT16
OutputTensor Output 4 FLOAT32, FLOAT16

Requisiti

   
Intestazione directml.h