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


структура DML_RESAMPLE_OPERATOR_DESC (directml.h)

Выполняет повторную выборку элементов из исходного тензора в тензор назначения, используя коэффициенты масштабирования для вычисления размера тензора назначения. Можно использовать линейный режим интерполяции или режим интерполяции ближайшего соседа. Оператор поддерживает интерполяцию по нескольким измерениям, а не только в двух измерениях. Таким образом, вы можете сохранить тот же пространственный размер, но интерполировать по каналам или пакетам.

Синтаксис

struct DML_RESAMPLE_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   ScaleCount;
  const FLOAT            *Scales;
};

Члены

InputTensor

Тип: const DML_TENSOR_DESC*

Тензор, содержащий входные данные.

OutputTensor

Тип: const DML_TENSOR_DESC*

Тензор, в который записываются выходные данные.

InterpolationMode

Тип: DML_INTERPOLATION_MODE

Это поле определяет тип интерполяции, используемый для выбора выходных пикселей.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Использует алгоритм ближайшего соседа , который выбирает входной элемент, ближайший к соответствующему центру пикселей для каждого выходного элемента.

  • DML_INTERPOLATION_MODE_LINEAR. Использует алгоритм линейной интерполяции , который вычисляет выходной элемент путем вычисления взвешенные средние 2 ближайших соседних входных элементов на измерение. Повторная выборка поддерживается до 4 измерений (квадрилинейных), где взвешенный средний вычисляется на общей сложности 16 входных элементов для каждого выходного элемента.

ScaleCount

Тип: UINT

Количество значений в массиве Scales , на которые указывает. Это значение должно соответствовать количеству измерений InputTensor и OutputTensor.

Scales

Тип: _Field_size_(ScaleCount) const FLOAT*

Масштаб, применяемый при повторной выборке входных данных, где масштабирует > изображение на 1 и масштабирует < изображение на 1 для этого измерения. Обратите внимание, что масштабы не обязательно должны иметь точное значение OutputSize / InputSize. Если входные данные после масштабирования больше, чем выходная привязка, мы обрезаем их до размера выходных данных. С другой стороны, если входные данные после масштабирования меньше границы выходных данных, края выходных данных зажимаются.

Комментарии

В появилась DML_FEATURE_LEVEL_2_1более новая версия этого оператора, DML_RESAMPLE1_OPERATOR_DESC.

Доступность

Этот оператор появился в DML_FEATURE_LEVEL_2_0.

Ограничения тензоров

InputTensor и OutputTensor должны иметь одинаковые значения DataType и DimensionCount.

Поддержка тензоров

DML_FEATURE_LEVEL_6_2 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные От 1 до 4 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Выходные данные От 1 до 4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные От 1 до 4 FLOAT32, FLOAT16
OutputTensor Выходные данные От 1 до 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_0 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные 4 FLOAT32, FLOAT16
OutputTensor Выходные данные 4 FLOAT32, FLOAT16

Требования

   
Минимальная версия клиента Windows 10, версия 2004 (10.0; Сборка 19041)
Минимальная версия сервера Windows Server версии 2004 (10.0; Сборка 19041)
Верхняя часть directml.h