estrutura DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC (directml.h)
Inverte os elementos de uma ou mais subsequências de um tensor. O conjunto de subsequências a serem invertidas é escolhido com base nos comprimentos de sequência e eixo fornecidos.
Sintaxe
struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
};
Membros
InputTensor
Tipo: const DML_TENSOR_DESC*
O tensor de entrada que contém elementos a serem invertidos.
SequenceLengthsTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém um valor para cada subsequência a ser invertida, indicando o comprimento em elementos dessa subsequência. Somente os elementos dentro do comprimento da subsequência são invertidos; os elementos restantes ao longo desse eixo são copiados para a saída inalterados.
Esse tensor deve ter a contagem de dimensões e tamanhos iguais ao InputTensor, exceto para a dimensão especificada pelo parâmetro Axis . O tamanho da dimensão Eixo deve ser 1. Por exemplo, se InputTensor tiver tamanhos de {2,3,4,5}
e Axis for 1, os tamanhos de SequenceLengthsTensor deverão ser {2,1,4,5}
.
Se o comprimento de uma subsequência exceder o número máximo de elementos ao longo desse eixo, esse operador se comportará como se o valor tivesse sido fixado ao máximo.
OutputTensor
Tipo: const DML_TENSOR_DESC*
O tensor de saída no qual gravar os resultados. Esse tensor deve ter os mesmos tamanhos e tipo de dados que o InputTensor.
Axis
Tipo: UINT
O índice da dimensão para inverter os elementos. Esse valor deve ser menor que o DimensionCount do InputTensor.
Exemplos
Exemplo 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]]]]
Exemplo 2. Inverter ao longo de um eixo diferente
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]]]]
Disponibilidade
Esse operador foi introduzido no DML_FEATURE_LEVEL_2_1
.
Restrições do Tensor
- InputTensor, OutputTensor e SequenceLengthsTensor devem ter o mesmo DimensionCount.
- InputTensor e OutputTensor devem ter o mesmo DataType.
Suporte ao Tensor
DML_FEATURE_LEVEL_5_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrada | 1 a 8 | UINT64, UINT32 |
OutputTensor | Saída | 1 a 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_4_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrada | 1 a 8 | UINT32 |
OutputTensor | Saída | 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 4 a 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrada | 4 a 5 | UINT32 |
OutputTensor | Saída | 4 a 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
SequenceLengthsTensor | Entrada | 4 | UINT32 |
OutputTensor | Saída | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
Requisitos
Cabeçalho | directml.h |