структура DML_ROI_POOLING_OPERATOR_DESC (directml.h)
Выполняет функцию MaxPool во входном тензоре (в соответствии с интересующими регионами или rois). Для каждого выходного элемента координаты его соответствующей рентабельности инвестиций во входных данных вычисляются с помощью следующих уравнений.
Пусть Y
будет индексом в третьем измерении InputTensor ({ BatchSize, ChannelCount, **height**, width }
).
Пусть X
будет индексом в четвертом измерении 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
Если вычисляемые координаты выходят за пределы границ, они привязываются к границам входных данных.
Синтаксис
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;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные с измерениями { BatchCount, ChannelCount, InputHeight, InputWidth }
.
ROITensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные о интересующих областях (ROI). Ожидаемые измерения ROITensor
— , { 1, 1, NumROIs, 5 }
а данные для каждого roi — .[BatchID, x1, y1, x2, y2]
x1, y1, x2, y2 — это инклюзивные координаты углов каждой рентабельности инвестиций и x2 >= x1, y2 >= y1.
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий выходные данные. Ожидаемые размеры OutputTensor — { NumROIs, InputChannelCount, PooledSize.Height, PooledSize.Width }
.
SpatialScale
Тип: FLOAT
Мультипликативный пространственный коэффициент масштабирования, используемый для преобразования координат рентабельности инвестиций с их входной шкалы в масштаб, используемый при пуле.
PooledSize
Тип: DML_SIZE_2D
Размер выходных данных пула ROI (высота, ширина), который должен соответствовать последним 2 измерениям OutputTensor.
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_1_0
.
Ограничения тензоров
InputTensor, OutputTensor и ROITensor должны иметь один и тот же тип DataType.
Поддержка тензоров
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | 4 | FLOAT32, FLOAT16 |
RoITensor | Входные данные | 4 | FLOAT32, FLOAT16 |
OutputTensor | Выходные данные | 4 | FLOAT32, FLOAT16 |
Требования
Верхняя часть | directml.h |