структура DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC (directml.h)
Обращает элементы одной или нескольких дочерних последовательности тензора. Набор вложенных последовательных параметров, которые необходимо изменить, выбирается на основе предоставленной оси и длины последовательности.
Синтаксис
struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Входной тензор, содержащий элементы для обратного изменения.
SequenceLengthsTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий значение для каждой дочерней последовательности, которая должна быть обращена, обозначая длину в элементах этой подчиненной последовательности. Только элементы в пределах длины вложенной последовательности являются обратными; Остальные элементы вдоль этой оси копируются в выходные данные без изменений.
Этот тензор должен иметь количество измерений и размеры, равные InputTensor, за исключением измерения, заданного параметром Axis . Размер измерения Оси должен быть 1. Например, если inputTensor имеет размеры {2,3,4,5}
, а Ось — 1, то размер SequenceLengthsTensor должен быть {2,1,4,5}
равным .
Если длина вложенной последовательности превышает максимальное число элементов вдоль этой оси, этот оператор ведет себя так, как если бы значение было зажато до максимального значения.
OutputTensor
Тип: const DML_TENSOR_DESC*
Выходной тензор для записи результатов. Этот тензор должен иметь те же размеры и тип данных, что и InputTensor.
Axis
Тип: UINT
Индекс измерения для обратного изменения элементов. Это значение должно быть меньше значения DimensionCount объекта InputTensor.
Примеры
Пример 1
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]]]
SequenceTensor: (Sizes:{1,1,3,1}, DataType:UINT32)
[[[[2],
[4],
[3]]]]
Axis: 3
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[ 2, 1, 3, 4],
[ 8, 7, 6, 5],
[11, 10, 9, 12]]]]
Пример 2. Реверсив вдоль другой оси
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]]]
SequenceTensor: (Sizes:{1,1,1,4}, DataType:UINT32)
[[[[2, 3, 1, 0]]]]
Axis: 2
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[5, 10, 3, 4], // Notice that sequence lengths of 1 and 0 are effective nops
[1, 6, 7, 8],
[9, 2, 11, 12]]]]
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_2_1
.
Ограничения тензоров
- InputTensor, OutputTensor и SequenceLengthsTensor должны иметь один и тот же DimensionCount.
- InputTensor и OutputTensor должны иметь один и тот же тип DataType.
Поддержка тензоров
DML_FEATURE_LEVEL_5_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | От 1 до 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Входные данные | От 1 до 8 | UINT64, UINT32 |
OutputTensor | Выходные данные | От 1 до 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_4_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | От 1 до 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Входные данные | От 1 до 8 | UINT32 |
OutputTensor | Выходные данные | От 1 до 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | от 4 до 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Входные данные | от 4 до 5 | UINT32 |
OutputTensor | Выходные данные | от 4 до 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Входные данные | 4 | UINT32 |
OutputTensor | Выходные данные | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
Требования
Верхняя часть | directml.h |