tf.contrib.rnn.static_rnn
tf.nn.static_rnn
tf.nn.static_rnn( cell, inputs, initial_state=None, dtype=None, sequence_length=None, scope=None )
Defined in tensorflow/python/ops/rnn.py
.
See the guide: RNN and Cells (contrib) > Recurrent Neural Networks
Creates a recurrent neural network specified by RNNCell cell
.
The simplest form of RNN network generated is:
state = cell.zero_state(...) outputs = [] for input_ in inputs: output, state = cell(input_, state) outputs.append(output) return (outputs, state)
However, a few other options are available:
An initial state can be provided. If the sequence_length vector is provided, dynamic calculation is performed. This method of calculation does not compute the RNN steps past the maximum sequence length of the minibatch (thus saving computational time), and properly propagates the state at an example's sequence length to the final state output.
The dynamic calculation performed is, at time t
for batch row b
,
(output, state)(b, t) = (t >= sequence_length(b)) ? (zeros(cell.output_size), states(b, sequence_length(b) - 1)) : cell(input(b, t), state(b, t - 1))
cell
: An instance of RNNCell.inputs
: A length T list of inputs, each a Tensor
of shape [batch_size, input_size]
, or a nested tuple of such elements.initial_state
: (optional) An initial state for the RNN. If cell.state_size
is an integer, this must be a Tensor
of appropriate type and shape [batch_size, cell.state_size]
. If cell.state_size
is a tuple, this should be a tuple of tensors having shapes [batch_size, s] for s in cell.state_size
.dtype
: (optional) The data type for the initial state and expected output. Required if initial_state is not provided or RNN state has a heterogeneous dtype.sequence_length
: Specifies the length of each sequence in inputs. An int32 or int64 vector (tensor) size [batch_size]
, values in [0, T)
.scope
: VariableScope for the created subgraph; defaults to "rnn".A pair (outputs, state) where:
TypeError
: If cell
is not an instance of RNNCell.ValueError
: If inputs
is None
or an empty list, or if the input depth (column size) cannot be inferred from inputs via shape inference.
© 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/python/tf/nn/static_rnn