Sequenza inversa

classe finale pubblica ReverseSequence

Inverte le fette di lunghezza variabile.

Questa operazione suddivide innanzitutto "input" lungo la dimensione "batch_dim" e, per ogni sezione "i", inverte i primi elementi "seq_lengths[i]" lungo la dimensione "seq_dim".

Gli elementi di `seq_lengths` devono obbedire a `seq_lengths[i] <= input.dims[seq_dim]` e `seq_lengths` deve essere un vettore di lunghezza `input.dims[batch_dim]`.

La sezione di output "i" lungo la dimensione "batch_dim" viene quindi fornita dalla sezione di input "i", con le prime sezioni "seq_lengths[i]" lungo la dimensione "seq_dim" invertite.

Ad esempio:

# 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:, :, ...]
 
Al contrario, 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, :, ...]
 

Classi nidificate

classe ReverseSequence.Options Attributi facoltativi per ReverseSequence

Metodi pubblici

Uscita <T>
comeuscita ()
Restituisce la maniglia simbolica di un tensore.
ReverseSequence.Options statiche
batchDim (batch lungo)
statico <T, U estende Numero> ReverseSequence <T>
create ( ambito ambito , input operando <T>, operando <U> seqLengths, Long seqDim, Opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione ReverseSequence.
Uscita <T>
produzione ()
L'ingresso parzialmente invertito.

Metodi ereditati

Metodi pubblici

Uscita pubblica <T> asOutput ()

Restituisce la maniglia simbolica di un tensore.

Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.

public static ReverseSequence.Options batchDim (batchDim lungo)

Parametri
lottoDim La dimensione lungo la quale viene eseguita l'inversione.

public static ReverseSequence <T> create ( scope scope, operando <T> input, operando <U> seqLengths, Long seqDim, Opzioni... opzioni)

Metodo factory per creare una classe che racchiude una nuova operazione ReverseSequence.

Parametri
scopo ambito attuale
ingresso L'ingresso da invertire.
seqLunghezze 1-D con lunghezza `input.dims(batch_dim)` e `max(seq_lengths) <= input.dims(seq_dim)`
seqDim La dimensione parzialmente invertita.
opzioni trasporta valori di attributi opzionali
ritorna
  • una nuova istanza di ReverseSequence

Uscita pubblica <T> uscita ()

L'ingresso parzialmente invertito. Ha la stessa forma di "input".