Поделиться через


структура 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

Режим интерполяции, используемый при изменении размера регионов.

  • 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