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 |