tf.keras.backend.rnn

Iterates over the time dimension of a tensor.

step_function RNN step function. Args; input; Tensor with shape (samples, ...) (no time dimension), representing input for the batch of samples at a certain time step. states; List of tensors. Returns; output; Tensor with shape (samples, output_dim) (no time dimension). new_states; List of tensors, same length and shapes as 'states'. The first state in the list must be the output tensor at the previous timestep.
inputs Tensor of temporal data of shape (samples, time, ...) (at least 3D), or nested tensors, and each of which has shape (samples, time, ...).
initial_states Tensor with shape (samples, state_size) (no time dimension), containing the initial values for the states used in the step function. In the case that state_size is in a nested shape, the shape of initial_states will also follow the nested structure.
go_backwards Boolean. If True, do the iteration over the time dimension in reverse order and return the reversed sequence.
mask Binary tensor with shape (samples, time, 1), with a zero for every element that is masked.
constants List of constant values passed at each step.
unroll Whether to unroll the RNN or to use a symbolic while_loop.
input_length An integer or a 1-D Tensor, depending on whether the time dimension is fixed-length or not. In case of variable length input, it is used for masking in case there's no mask specified.
time_major Boolean. If true, the inputs and outputs will be in shape (timesteps, batch, ...), whereas in the False case, it will be (batch, timesteps, ...). Using time_major = True is a bit more efficient because it avoids transposes at the beginning and end of the RNN calculation. However, most TensorFlow data is batch-major, so by default this function accepts input and emits output in batch-major form.
zero_output_for_mask Boolean. If True, the output for masked timestep will be zeros, whereas in the False case, output from previous timestep is returned.
return_all_outputs Boolean. If True, return the recurrent outputs for all timesteps in the sequence. If False, only return the output for the last timestep (which consumes less memory).

A tuple, (last_output, outputs, new_states). last_output: the latest output of the rnn, of shape (samples, ...) outputs:

- If `return_all_outputs=True`: a tensor with shape
  `(samples, time, ...)` where each entry `outputs[s, t]` is the
  output of the step function at time `t` for sample `s`
- Else, a tensor equal to `last_output` with shape
  `(samples, 1, ...)`

new_states: list of tensors, latest states returned by the step function, of shape (samples, ...).

ValueError if input dimension is less than 3.
ValueError if unroll is True but input timestep is not a fixed number.
ValueError if mask is provided (not None) but states is not provided (len(states) == 0).