структура DML_ROI_ALIGN_OPERATOR_DESC (directml.h)
Выполняет операцию выравнивания рентабельности инвестиций, как описано в документе Маска R-CNN . Таким образом, операция извлекает поля из тензора входного изображения и изменяет их размер до общего размера выходных данных, заданного последними 2 измерениями OutputTensor , используя указанный параметр ИнтерполяцияMode.
Синтаксис
struct DML_ROI_ALIGN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ROITensor;
const DML_TENSOR_DESC *BatchIndicesTensor;
const DML_TENSOR_DESC *OutputTensor;
DML_REDUCE_FUNCTION ReductionFunction;
DML_INTERPOLATION_MODE InterpolationMode;
FLOAT SpatialScaleX;
FLOAT SpatialScaleY;
FLOAT OutOfBoundsInputValue;
UINT MinimumSamplesPerOutput;
UINT MaximumSamplesPerOutput;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные с измерениями { BatchCount, ChannelCount, InputHeight, InputWidth }
.
ROITensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные о интересующих областях (ROI). Допустимые размеры ROITensor
: { NumROIs, 4 }
, { 1, NumROIs, 4 }
или { 1, 1, NumROIs, 4 }
. Для каждого roi значения будут координатами его верхнего левого и нижнего правых углов в порядке [x1, y1, x2, y2]
.
BatchIndicesTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий пакетные индексы для извлечения рентабельности инвестиций. Допустимые размеры BatchIndicesTensor
: { NumROIs }
, { 1, NumROIs }
, { 1, 1, NumROIs }
или { 1, 1, 1, NumROIs }
. Каждое значение является индексом пакета из InputTensor. Поведение не определено, если значения не находятся в диапазоне [0, BatchCount).
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий выходные данные. Ожидаемые размеры OutputTensor — { NumROIs, ChannelCount, OutputHeight, OutputWidth }
.
ReductionFunction
Тип: DML_REDUCE_FUNCTION
Функция сокращения, используемая при сокращении всех входных выборок, которые влияют на выходной элемент (DML_REDUCE_FUNCTION_AVERAGE или DML_REDUCE_FUNCTION_MAX). Количество входных выборок, которые необходимо уменьшить, ограничивается значениями MinimumSamplesPerOutput и MaximumSamplesPerOutput.
InterpolationMode
Режим интерполяции, используемый при изменении размера регионов.
- DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Использует алгоритм ближайшего соседа , который выбирает входной элемент, ближайший к соответствующему центру пикселей для каждого выходного элемента.
- DML_INTERPOLATION_MODE_LINEAR. Использует билинейный алгоритм, который вычисляет выходной элемент, выполняя взвешенный средний показатель двух ближайших соседних входных элементов для каждого измерения. Так как размер изменяется только 2 измерения, взвешенный средний вычисляется на основе 4 входных элементов для каждого выходного элемента.
SpatialScaleX
Тип: FLOAT
Компонент X (или ширины) коэффициента масштабирования для умножения координат ROITensor на, чтобы сделать их пропорциональными InputHeight и InputWidth. Например, если ROITensor содержит нормализованные координаты (значения в диапазоне [0..1]), то SpatialScaleX обычно имеет то же значение, что и InputWidth.
SpatialScaleY
Тип: FLOAT
Компонент Y (или высота) коэффициента масштабирования, на который умножаются координаты ROITensor , чтобы сделать их пропорциональными InputHeight и InputWidth. Например, если ROITensor содержит нормализованные координаты (значения в диапазоне [0..1]), SpatialScaleY обычно будет иметь то же значение, что и InputHeight.
OutOfBoundsInputValue
Тип: FLOAT
Значение, считываемое из InputTensor , когда roIs находится за пределами InputTensor. Это может произойти, если значения, полученные после масштабирования ROITensorspatialScaleX и SpatialScaleY , больше , чем InputWidth и InputHeight.
MinimumSamplesPerOutput
Тип: UINT
Минимальное количество входных выборок, используемых для каждого выходного элемента. Оператор вычисляет количество входных выборок, выполняя , ScaledCropSize / OutputSize
а затем зажимает его в minimumSamplesPerOutput и MaximumSamplesPerOutput.
MaximumSamplesPerOutput
Тип: UINT
Максимальное количество входных выборок, используемых для каждого выходного элемента. Оператор вычисляет количество входных выборок, выполняя , ScaledCropSize / OutputSize
а затем зажимает его в minimumSamplesPerOutput и MaximumSamplesPerOutput.
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_3_0
.
Ограничения тензоров
InputTensor, OutputTensor и ROITensor должны иметь один и тот же тип DataType.
Поддержка тензоров
DML_FEATURE_LEVEL_5_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | 4 | FLOAT32, FLOAT16 |
RoITensor | Входные данные | От 2 до 4 | FLOAT32, FLOAT16 |
BatchIndicesTensor | Входные данные | от 1 до 4 | UINT64, UINT32 |
OutputTensor | Выходные данные | 4 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | 4 | FLOAT32, FLOAT16 |
RoITensor | Входные данные | От 2 до 4 | FLOAT32, FLOAT16 |
BatchIndicesTensor | Входные данные | от 1 до 4 | UINT32 |
OutputTensor | Выходные данные | 4 | FLOAT32, FLOAT16 |
Требования
Минимальная версия клиента | Windows 10 сборки 20348 |
Минимальная версия сервера | Windows 10 сборки 20348 |
Верхняя часть | directml.h |