Compartir a través de


estructura DML_ROI_POOLING_OPERATOR_DESC (directml.h)

Realiza una función MaxPool en el tensor de entrada (según las regiones de interés o rois). Para cada elemento de salida, las coordenadas de su ROI correspondiente en la entrada se calculan mediante las ecuaciones siguientes.

Vamos Y a ser un índice en la tercera dimensión de InputTensor ({ BatchSize, ChannelCount, **height**, width }).

Vamos X a ser un índice en la cuarta dimensión de 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

Si las coordenadas calculadas están fuera de los límites, se sujetan a los límites de entrada.

Sintaxis

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

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de entrada con dimensiones { BatchCount, ChannelCount, InputHeight, InputWidth }.

ROITensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene las regiones de interés (ROI). Las dimensiones esperadas de son { 1, 1, NumROIs, 5 } y los datos de ROITensor cada ROI son [BatchID, x1, y1, x2, y2]. x1, y1, x2, y2 son las coordenadas inclusivas de las esquinas de cada ROI y x2 >= x1, y2 >= y1.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de salida. Las dimensiones esperadas de OutputTensor son { NumROIs, InputChannelCount, PooledSize.Height, PooledSize.Width }.

SpatialScale

Tipo: FLOAT

Factor de escala espacial multiplicativo que se usa para traducir las coordenadas de ROI de su escala de entrada a la escala utilizada al agrupar.

PooledSize

Tipo: DML_SIZE_2D

El tamaño de salida del grupo de ROI (alto, ancho), que debe coincidir con las dos últimas dimensiones de OutputTensor.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_1_0.

Restricciones tensor

InputTensor, OutputTensor y ROITensor deben tener el mismo DataType.

Compatibilidad con Tensor

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada 4 FLOAT32, FLOAT16
ROITensor Entrada 4 FLOAT32, FLOAT16
OutputTensor Resultados 4 FLOAT32, FLOAT16

Requisitos

   
Encabezado directml.h