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