Inverte fatias de comprimento variável.
Este op primeiro corta `input` ao longo da dimensão` batch_dim`, e para cada fatia `i`, reverte os primeiros elementos` seq_lengths [i] `ao longo da dimensão` seq_dim`.
Os elementos de `seq_lengths` devem obedecer a` seq_lengths [i] <= input.dims [seq_dim] `, e` seq_lengths` deve ser um vetor de comprimento `input.dims [batch_dim]`.
A fatia de saída `i` ao longo da dimensão` batch_dim` é então dada pela fatia de entrada `i`, com as primeiras fatias` seq_lengths [i] `ao longo da dimensão` seq_dim` invertidas.
Por exemplo:
# Given this:
batch_dim = 0
seq_dim = 1
input.dims = (4, 8, ...)
seq_lengths = [7, 2, 3, 5]
# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0, 0:7, :, ...] = input[0, 7:0:-1, :, ...]
output[1, 0:2, :, ...] = input[1, 2:0:-1, :, ...]
output[2, 0:3, :, ...] = input[2, 3:0:-1, :, ...]
output[3, 0:5, :, ...] = input[3, 5:0:-1, :, ...]
# while entries past seq_lens are copied through:
output[0, 7:, :, ...] = input[0, 7:, :, ...]
output[1, 2:, :, ...] = input[1, 2:, :, ...]
output[2, 3:, :, ...] = input[2, 3:, :, ...]
output[3, 2:, :, ...] = input[3, 2:, :, ...]
Em contraste, se: # Given this:
batch_dim = 2
seq_dim = 0
input.dims = (8, ?, 4, ...)
seq_lengths = [7, 2, 3, 5]
# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0:7, :, 0, :, ...] = input[7:0:-1, :, 0, :, ...]
output[0:2, :, 1, :, ...] = input[2:0:-1, :, 1, :, ...]
output[0:3, :, 2, :, ...] = input[3:0:-1, :, 2, :, ...]
output[0:5, :, 3, :, ...] = input[5:0:-1, :, 3, :, ...]
# while entries past seq_lens are copied through:
output[7:, :, 0, :, ...] = input[7:, :, 0, :, ...]
output[2:, :, 1, :, ...] = input[2:, :, 1, :, ...]
output[3:, :, 2, :, ...] = input[3:, :, 2, :, ...]
output[2:, :, 3, :, ...] = input[2:, :, 3, :, ...]
Classes aninhadas
classe | ReverseSequence.Options | Atributos opcionais para ReverseSequence |
Métodos Públicos
Output <T> | asOutput () Retorna o identificador simbólico de um tensor. |
estáticos ReverseSequence.Options | batchDim (Long batchDim) |
estática <T, U estende Number> ReverseSequence <T> | criar ( Scope escopo, Operando <T> entrada, Operando <U> seqLengths, Long seqDim, Options ... Opções) Método de fábrica para criar uma classe envolvendo uma nova operação ReverseSequence. |
Output <T> | saída () A entrada parcialmente invertida. |
Métodos herdados
Métodos Públicos
pública Output <T> asOutput ()
Retorna o identificador simbólico de um tensor.
As entradas para as operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.
public static ReverseSequence.Options batchDim (Long batchDim)
Parâmetros
batchDim | A dimensão ao longo da qual a reversão é executada. |
---|
public static ReverseSequence <T> create ( Scope escopo, Operando <T> entrada, Operando <U> seqLengths, Long seqDim, Options ... Opções)
Método de fábrica para criar uma classe envolvendo uma nova operação ReverseSequence.
Parâmetros
alcance | escopo atual |
---|---|
entrada | A entrada a ser invertida. |
seqLengths | 1-D com comprimento `input.dims (batch_dim)` e `max (seq_lengths) <= input.dims (seq_dim)` |
seqDim | A dimensão que está parcialmente invertida. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de ReverseSequence
pública Output <T> de saída ()
A entrada parcialmente invertida. Ele tem o mesmo formato que `entrada`.