ReverseSequence

public final class ReverseSequence

Reverses variable length slices.

This op first slices `input` along the dimension `batch_dim`, and for each slice `i`, reverses the first `seq_lengths[i]` elements along the dimension `seq_dim`.

The elements of `seq_lengths` must obey `seq_lengths[i] <= input.dims[seq_dim]`, and `seq_lengths` must be a vector of length `input.dims[batch_dim]`.

The output slice `i` along dimension `batch_dim` is then given by input slice `i`, with the first `seq_lengths[i]` slices along dimension `seq_dim` reversed.

For example:

# 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:, :, ...]
 
In contrast, if:
# 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, :, ...]
 

Nested Classes

class ReverseSequence.Options Optional attributes for ReverseSequence  

Constants

String OP_NAME The name of this op, as known by TensorFlow core engine

Public Methods

Output<T>
asOutput()
Returns the symbolic handle of the tensor.
static ReverseSequence.Options
batchDim(Long batchDim)
static <T extends TType> ReverseSequence<T>
create(Scope scope, Operand<T> input, Operand<? extends TNumber> seqLengths, Long seqDim, Options... options)
Factory method to create a class wrapping a new ReverseSequence operation.
Output<T>
output()
The partially reversed input.

Inherited Methods

org.tensorflow.op.RawOp
final boolean
equals(Object obj)
final int
Operation
op()
Return this unit of computation as a single Operation.
final String
boolean
equals(Object arg0)
final Class<?>
getClass()
int
hashCode()
final void
notify()
final void
notifyAll()
String
toString()
final void
wait(long arg0, int arg1)
final void
wait(long arg0)
final void
wait()
org.tensorflow.op.Op
abstract ExecutionEnvironment
env()
Return the execution environment this op was created in.
abstract Operation
op()
Return this unit of computation as a single Operation.
org.tensorflow.Operand
abstract Output<T>
asOutput()
Returns the symbolic handle of the tensor.
abstract T
asTensor()
Returns the tensor at this operand.
abstract Shape
shape()
Returns the (possibly partially known) shape of the tensor referred to by the Output of this operand.
abstract Class<T>
type()
Returns the tensor type of this operand
org.tensorflow.ndarray.Shaped
abstract int
rank()
abstract Shape
shape()
abstract long
size()
Computes and returns the total size of this container, in number of values.

Constants

public static final String OP_NAME

The name of this op, as known by TensorFlow core engine

Constant Value: "ReverseSequence"

Public Methods

public Output<T> asOutput ()

Returns the symbolic handle of the tensor.

Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.

public static ReverseSequence.Options batchDim (Long batchDim)

Parameters
batchDim The dimension along which reversal is performed.

public static ReverseSequence<T> create (Scope scope, Operand<T> input, Operand<? extends TNumber> seqLengths, Long seqDim, Options... options)

Factory method to create a class wrapping a new ReverseSequence operation.

Parameters
scope current scope
input The input to reverse.
seqLengths 1-D with length `input.dims(batch_dim)` and `max(seq_lengths) <= input.dims(seq_dim)`
seqDim The dimension which is partially reversed.
options carries optional attributes values
Returns
  • a new instance of ReverseSequence

public Output<T> output ()

The partially reversed input. It has the same shape as `input`.