Invierte cortes de longitud variable.
Esta operación primero divide `input` a lo largo de la dimensión` batch_dim`, y para cada segmento `i`, invierte los primeros elementos` seq_lengths [i] `a lo largo de la dimensión` seq_dim`.
Los elementos de `seq_lengths` deben obedecer a` seq_lengths [i] <= input.dims [seq_dim] `, y` seq_lengths` debe ser un vector de longitud `input.dims [batch_dim]`.
El segmento de salida `i` a lo largo de la dimensión` batch_dim` viene dado por el segmento de entrada `i`, con los primeros segmentos` seq_lengths [i] `a lo largo de la dimensión` seq_dim` invertidos.
Por ejemplo:
# 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:, :, ...]
Por el contrario, si: # 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, :, ...]
Clases anidadas
clase | ReverseSequence.Options | Los atributos opcionales para ReverseSequence |
Constantes
Cuerda | OP_NAME | El nombre de esta operación, como lo conoce el motor central de TensorFlow |
Métodos públicos
Salida <T> | asOutput () Devuelve el identificador simbólico del tensor. |
estáticas ReverseSequence.Options | batchDim (Long batchDim) |
estática <T se extiende Ttype > ReverseSequence <T> | |
Salida <T> | salida () La entrada parcialmente invertida. |
Métodos heredados
Constantes
OP_NAME pública final static String
El nombre de esta operación, como lo conoce el motor central de TensorFlow
Métodos públicos
pública de salida <T> asOutput ()
Devuelve el identificador simbólico del tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
public static ReverseSequence.Options batchDim (Long batchDim)
Parámetros
batchDim | La dimensión a lo largo de la cual se realiza la inversión. |
---|
public static ReverseSequence <T> crear ( Alcance alcance, operando <T> de entrada, operando <? extiende TNumber > seqLengths, Long seqDim, Opciones ... Opciones)
Método de fábrica para crear una clase que envuelva una nueva operación ReverseSequence.
Parámetros
alcance | alcance actual |
---|---|
aporte | La entrada para revertir. |
seqLengths | 1-D con longitud `input.dims (batch_dim)` y `max (seq_lengths) <= input.dims (seq_dim)` |
seqDim | La dimensión que se invierte parcialmente. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de ReverseSequence
pública de salida <T> salida ()
La entrada parcialmente invertida. Tiene la misma forma que "input".