структура DML_ARGMIN_OPERATOR_DESC (directml.h)
Выводит индексы элементов с минимальными значениями в пределах одного или нескольких измерений входного тензора.
Каждый выходной элемент является результатом применения сокращения argmin к подмножества входного тензора. Функция argmin выводит индекс элемента с минимальным значением в наборе входных элементов. Входные элементы, участвующие в каждом сокращении, определяются предоставленными входными осями. Аналогичным образом каждый выходной индекс соответствует предоставленным входным осям. Если указаны все входные оси, то оператор применяет одно сокращение argmin и создает один выходной элемент.
Синтаксис
struct DML_ARGMIN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT AxisCount;
const UINT *Axes;
DML_AXIS_DIRECTION AxisDirection;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор для чтения.
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор, в который записываются результаты. Каждый выходной элемент является результатом сокращения argmin для подмножества элементов из InputTensor.
- DimensionCount должен соответствовать InputTensor.DimensionCount (ранг входного тензора сохраняется).
- Размеры должны совпадать с InputTensor.Sizes, за исключением измерений, включенных в уменьшенные оси, которые должны иметь размер 1.
AxisCount
Тип: UINT
Количество осей для уменьшения. Это поле определяет размер массива осей .
Axes
Тип: _Field_size_(AxisCount) const UINT*
Оси, вдоль которых выполняется уменьшение. Значения должны находиться в диапазоне [0, InputTensor.DimensionCount - 1]
.
AxisDirection
DML_AXIS_DIRECTION AxisDirection;
Тип: DML_AXIS_DIRECTION
Определяет, какой индекс следует выбрать, если несколько входных элементов имеют одинаковое значение.
- DML_AXIS_DIRECTION_INCREASING возвращает индекс первого элемента с минимальным значением (например,
argmin({1,2,3,2,1}) = 0
). - DML_AXIS_DIRECTION_DECREASING возвращает индекс последнего элемента с минимальным значением (например,
argmin({1,2,3,2,1}) = 4
).
Примеры
В примерах в этом разделе используется тот же двумерный входной тензор.
InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
[3, 0, 4],
[2, 5, 2]]
Пример 1. Применение argmin к столбцам
AxisCount: 1
Axes: {0}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{1, 3}, DataType:UINT32)
[[0, // argmin({1, 3, 2})
1, // argmin({2, 0, 5})
2]] // argmin({3, 4, 2})
Пример 2. Применение argmin к строкам
AxisCount: 1
Axes: {1}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{3, 1}, DataType:UINT32)
[[0], // argmin({1, 2, 3})
[1], // argmin({3, 0, 4})
[0]] // argmin({2, 5, 2})
Пример 3. Применение argmin ко всем осям (весь тензор)
AxisCount: 2
Axes: {0, 1}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{1, 1}, DataType:UINT32)
[[4]] // argmin({1, 2, 3, 3, 0, 4, 2, 5, 2})
Комментарии
Размеры выходных тензоров должны совпадать с размерами входного тензора, за исключением уменьшенных осей, которые должны быть равными 1.
Если значение AxisDirectionDML_AXIS_DIRECTION_INCREASING, этот API эквивалентен DML_REDUCE_OPERATOR_DESC с DML_REDUCE_FUNCTION_ARGMIN.
Подмножество этой функции предоставляется через оператор DML_REDUCE_OPERATOR_DESC и поддерживается на более ранних уровнях функций DirectML.
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_3_0
.
Ограничения тензоров
InputTensor и OutputTensor должны иметь одинаковые dimensionCount.
Поддержка тензоров
DML_FEATURE_LEVEL_4_1 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | От 1 до 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Выходные данные | От 1 до 8 | INT64, INT32, UINT64, UINT32 |
DML_FEATURE_LEVEL_3_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | От 1 до 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Выходные данные | От 1 до 8 | INT64, INT32, UINT64, UINT32 |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | сборка Windows 10 20348 |
Минимальная версия сервера | сборка Windows 10 20348 |
Верхняя часть | directml.h |