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


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