Class Decoder
Defined in tensorflow/contrib/seq2seq/python/ops/decoder.py
.
An RNN Decoder abstract interface object.
Concepts used by this interface:
- inputs
: (structure of) tensors and TensorArrays that is passed as input to
the RNNCell composing the decoder, at each time step.
- state
: (structure of) tensors and TensorArrays that is passed to the
RNNCell instance as the state.
- finished
: boolean tensor telling whether each sequence in the batch is
finished.
- outputs
: Instance of BasicDecoderOutput. Result of the decoding, at each
time step.
Properties
batch_size
The batch size of input values.
output_dtype
A (possibly nested tuple of...) dtype[s].
output_size
A (possibly nested tuple of...) integer[s] or TensorShape
object[s].
tracks_own_finished
Describes whether the Decoder keeps track of finished states.
Most decoders will emit a true/false finished
value independently
at each time step. In this case, the dynamic_decode
function keeps track
of which batch entries are already finished, and performs a logical OR to
insert new batches to the finished set.
Some decoders, however, shuffle batches / beams between time steps and
dynamic_decode
will mix up the finished state across these entries because
it does not track the reshuffle across time steps. In this case, it is
up to the decoder to declare that it will keep track of its own finished
state by setting this property to True
.
Returns:
Python bool.
Methods
tf.contrib.seq2seq.Decoder.finalize
finalize(
outputs,
final_state,
sequence_lengths
)
tf.contrib.seq2seq.Decoder.initialize
initialize(name=None)
Called before any decoding iterations.
This methods must compute initial input values and initial state.
Args:
name
: Name scope for any created operations.
Returns:
(finished, initial_inputs, initial_state)
: initial values of
'finished' flags, inputs and state.
tf.contrib.seq2seq.Decoder.step
step(
time,
inputs,
state,
name=None
)
Called per step of decoding (but only once for dynamic decoding).
Args:
time
: Scalarint32
tensor. Current step number.inputs
: RNNCell input (possibly nested tuple of) tensor[s] for this time step.state
: RNNCell state (possibly nested tuple of) tensor[s] from previous time step.name
: Name scope for any created operations.
Returns:
(outputs, next_state, next_inputs, finished)
: outputs
is an object
containing the decoder output, next_state
is a (structure of) state
tensors and TensorArrays, next_inputs
is the tensor that should be used
as input for the next step, finished
is a boolean tensor telling whether
the sequence is complete, for each sequence in the batch.