W3cubDocs

/TensorFlow C++

tensorflow::ops::ReverseSequence

#include <array_ops.h>

Reverses variable length slices.

Summary

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

Arguments:

  • scope: A Scope object
  • input: The input to reverse.
  • seq_lengths: 1-D with length input.dims(batch_dim) and max(seq_lengths) <= input.dims(seq_dim)
  • seq_dim: The dimension which is partially reversed.

Optional attributes (see Attrs):

  • batch_dim: The dimension along which reversal is performed.

Returns:

  • Output: The partially reversed input. It has the same shape as input.
Constructors and Destructors
ReverseSequence(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input seq_lengths, int64 seq_dim)
ReverseSequence(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input seq_lengths, int64 seq_dim, const ReverseSequence::Attrs & attrs)
Public attributes
output
Public functions
node() const
::tensorflow::Node *
operator::tensorflow::Input() const
operator::tensorflow::Output() const
Public static functions
BatchDim(int64 x)
Structs
tensorflow::ops::ReverseSequence::Attrs

Optional attribute setters for ReverseSequence.

Public attributes

output

::tensorflow::Output output

Public functions

ReverseSequence

 ReverseSequence(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input seq_lengths,
  int64 seq_dim
)

ReverseSequence

 ReverseSequence(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input seq_lengths,
  int64 seq_dim,
  const ReverseSequence::Attrs & attrs
)

node

::tensorflow::Node * node() const 

operator::tensorflow::Input

operator::tensorflow::Input() const 

operator::tensorflow::Output

operator::tensorflow::Output() const 

Public static functions

BatchDim

Attrs BatchDim(
  int64 x
)

© 2018 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/reverse-sequence.html