Class BasicLSTMCell
Inherits From: LayerRNNCell
Aliases:
- Class
tf.contrib.rnn.BasicLSTMCell
- Class
tf.nn.rnn_cell.BasicLSTMCell
Defined in tensorflow/python/ops/rnn_cell_impl.py
.
DEPRECATED: Please use tf.nn.rnn_cell.LSTMCell
instead.
Basic LSTM recurrent network cell.
The implementation is based on: http://arxiv.org/abs/1409.2329.
We add forget_bias (default: 1) to the biases of the forget gate in order to reduce the scale of forgetting in the beginning of the training.
It does not allow cell clipping, a projection layer, and does not use peep-hole connections: it is the basic baseline.
For advanced models, please use the full tf.nn.rnn_cell.LSTMCell
that follows.
Note that this cell is not optimized for performance. Please use
tf.contrib.cudnn_rnn.CudnnLSTM
for better performance on GPU, or
tf.contrib.rnn.LSTMBlockCell
and tf.contrib.rnn.LSTMBlockFusedCell
for
better performance on CPU.
__init__
__init__(
num_units,
forget_bias=1.0,
state_is_tuple=True,
activation=None,
reuse=None,
name=None,
dtype=None,
**kwargs
)
Initialize the basic LSTM cell. (deprecated)
Args:
num_units
: int, The number of units in the LSTM cell.forget_bias
: float, The bias added to forget gates (see above). Must set to0.0
manually when restoring from CudnnLSTM-trained checkpoints.state_is_tuple
: If True, accepted and returned states are 2-tuples of thec_state
andm_state
. If False, they are concatenated along the column axis. The latter behavior will soon be deprecated.activation
: Activation function of the inner states. Default:tanh
. It could also be string that is within Keras activation function names.reuse
: (optional) Python boolean describing whether to reuse variables in an existing scope. If notTrue
, and the existing scope already has the given variables, an error is raised.name
: String, the name of the layer. Layers with the same name will share weights, but to avoid mistakes we require reuse=True in such cases.dtype
: Default dtype of the layer (default ofNone
means use the type of the first input). Required whenbuild
is called beforecall
.**kwargs
: Dict, keyword named properties for common layer attributes, liketrainable
etc when constructing the cell from configs of get_config().When restoring from CudnnLSTM-trained checkpoints, must use
CudnnCompatibleLSTMCell
instead.
Properties
activity_regularizer
Optional regularizer function for the output of this layer.
dtype
graph
input
Retrieves the input tensor(s) of a layer.
Only applicable if the layer has exactly one input, i.e. if it is connected to one incoming layer.
Returns:
Input tensor or list of input tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.
Raises:
RuntimeError
: If called in Eager mode.AttributeError
: If no inbound nodes are found.
input_mask
Retrieves the input mask tensor(s) of a layer.
Only applicable if the layer has exactly one inbound node, i.e. if it is connected to one incoming layer.
Returns:
Input mask tensor (potentially None) or list of input mask tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.
input_shape
Retrieves the input shape(s) of a layer.
Only applicable if the layer has exactly one input, i.e. if it is connected to one incoming layer, or if all inputs have the same shape.
Returns:
Input shape, as an integer shape tuple (or list of shape tuples, one tuple per input tensor).
Raises:
AttributeError
: if the layer has no defined input_shape.RuntimeError
: if called in Eager mode.
losses
Losses which are associated with this Layer
.
Variable regularization tensors are created when this property is accessed,
so it is eager safe: accessing losses
under a tf.GradientTape
will
propagate gradients back to the corresponding variables.
Returns:
A list of tensors.
name
non_trainable_variables
non_trainable_weights
output
Retrieves the output tensor(s) of a layer.
Only applicable if the layer has exactly one output, i.e. if it is connected to one incoming layer.
Returns:
Output tensor or list of output tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.RuntimeError
: if called in Eager mode.
output_mask
Retrieves the output mask tensor(s) of a layer.
Only applicable if the layer has exactly one inbound node, i.e. if it is connected to one incoming layer.
Returns:
Output mask tensor (potentially None) or list of output mask tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.
output_shape
Retrieves the output shape(s) of a layer.
Only applicable if the layer has one output, or if all outputs have the same shape.
Returns:
Output shape, as an integer shape tuple (or list of shape tuples, one tuple per output tensor).
Raises:
AttributeError
: if the layer has no defined output shape.RuntimeError
: if called in Eager mode.
output_size
Integer or TensorShape: size of outputs produced by this cell.
scope_name
state_size
size(s) of state(s) used by this cell.
It can be represented by an Integer, a TensorShape or a tuple of Integers or TensorShapes.
trainable_variables
trainable_weights
updates
variables
Returns the list of all layer variables/weights.
Alias of self.weights
.
Returns:
A list of variables.
weights
Returns the list of all layer variables/weights.
Returns:
A list of variables.
Methods
tf.nn.rnn_cell.BasicLSTMCell.__call__
__call__(
inputs,
state,
scope=None,
*args,
**kwargs
)
Run this RNN cell on inputs, starting from the given state.
Args:
inputs
:2-D
tensor with shape[batch_size, input_size]
.state
: ifself.state_size
is an integer, this should be a2-D Tensor
with shape[batch_size, self.state_size]
. Otherwise, ifself.state_size
is a tuple of integers, this should be a tuple with shapes[batch_size, s] for s in self.state_size
.scope
: optional cell scope.*args
: Additional positional arguments.**kwargs
: Additional keyword arguments.
Returns:
A pair containing:
- Output: A
2-D
tensor with shape[batch_size, self.output_size]
. - New state: Either a single
2-D
tensor, or a tuple of tensors matching the arity and shapes ofstate
.
tf.nn.rnn_cell.BasicLSTMCell.__deepcopy__
__deepcopy__(memo)
tf.nn.rnn_cell.BasicLSTMCell.__setattr__
__setattr__(
name,
value
)
Implement setattr(self, name, value).
tf.nn.rnn_cell.BasicLSTMCell.apply
apply(
inputs,
*args,
**kwargs
)
Apply the layer on a input.
This is an alias of self.__call__
.
Arguments:
inputs
: Input tensor(s).*args
: additional positional arguments to be passed toself.call
.**kwargs
: additional keyword arguments to be passed toself.call
.
Returns:
Output tensor(s).
tf.nn.rnn_cell.BasicLSTMCell.build
build(
instance,
input_shape
)
tf.nn.rnn_cell.BasicLSTMCell.compute_mask
compute_mask(
inputs,
mask=None
)
Computes an output mask tensor.
Arguments:
inputs
: Tensor or list of tensors.mask
: Tensor or list of tensors.
Returns:
None or a tensor (or list of tensors, one per output tensor of the layer).
tf.nn.rnn_cell.BasicLSTMCell.compute_output_shape
compute_output_shape(input_shape)
Computes the output shape of the layer.
Assumes that the layer will be built to match that input shape provided.
Arguments:
input_shape
: Shape tuple (tuple of integers) or list of shape tuples (one per output tensor of the layer). Shape tuples can include None for free dimensions, instead of an integer.
Returns:
An input shape tuple.
tf.nn.rnn_cell.BasicLSTMCell.count_params
count_params()
Count the total number of scalars composing the weights.
Returns:
An integer count.
Raises:
ValueError
: if the layer isn't yet built (in which case its weights aren't yet defined).
tf.nn.rnn_cell.BasicLSTMCell.from_config
from_config(
cls,
config
)
Creates a layer from its config.
This method is the reverse of get_config
,
capable of instantiating the same layer from the config
dictionary. It does not handle layer connectivity
(handled by Network), nor weights (handled by set_weights
).
Arguments:
config
: A Python dictionary, typically the output of get_config.
Returns:
A layer instance.
tf.nn.rnn_cell.BasicLSTMCell.get_config
get_config()
Returns the config of the layer.
A layer config is a Python dictionary (serializable) containing the configuration of a layer. The same layer can be reinstantiated later (without its trained weights) from this configuration.
The config of a layer does not include connectivity
information, nor the layer class name. These are handled
by Network
(one layer of abstraction above).
Returns:
Python dictionary.
tf.nn.rnn_cell.BasicLSTMCell.get_initial_state
get_initial_state(
inputs=None,
batch_size=None,
dtype=None
)
tf.nn.rnn_cell.BasicLSTMCell.get_input_at
get_input_at(node_index)
Retrieves the input tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A tensor (or list of tensors if the layer has multiple inputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.nn.rnn_cell.BasicLSTMCell.get_input_mask_at
get_input_mask_at(node_index)
Retrieves the input mask tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A mask tensor (or list of tensors if the layer has multiple inputs).
tf.nn.rnn_cell.BasicLSTMCell.get_input_shape_at
get_input_shape_at(node_index)
Retrieves the input shape(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A shape tuple (or list of shape tuples if the layer has multiple inputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.nn.rnn_cell.BasicLSTMCell.get_losses_for
get_losses_for(inputs)
Retrieves losses relevant to a specific set of inputs.
Arguments:
inputs
: Input tensor or list/tuple of input tensors.
Returns:
List of loss tensors of the layer that depend on inputs
.
Raises:
RuntimeError
: If called in Eager mode.
tf.nn.rnn_cell.BasicLSTMCell.get_output_at
get_output_at(node_index)
Retrieves the output tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A tensor (or list of tensors if the layer has multiple outputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.nn.rnn_cell.BasicLSTMCell.get_output_mask_at
get_output_mask_at(node_index)
Retrieves the output mask tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A mask tensor (or list of tensors if the layer has multiple outputs).
tf.nn.rnn_cell.BasicLSTMCell.get_output_shape_at
get_output_shape_at(node_index)
Retrieves the output shape(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A shape tuple (or list of shape tuples if the layer has multiple outputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.nn.rnn_cell.BasicLSTMCell.get_updates_for
get_updates_for(inputs)
Retrieves updates relevant to a specific set of inputs.
Arguments:
inputs
: Input tensor or list/tuple of input tensors.
Returns:
List of update ops of the layer that depend on inputs
.
Raises:
RuntimeError
: If called in Eager mode.
tf.nn.rnn_cell.BasicLSTMCell.get_weights
get_weights()
Returns the current weights of the layer.
Returns:
Weights values as a list of numpy arrays.
tf.nn.rnn_cell.BasicLSTMCell.set_weights
set_weights(weights)
Sets the weights of the layer, from Numpy arrays.
Arguments:
weights
: a list of Numpy arrays. The number of arrays and their shape must match number of the dimensions of the weights of the layer (i.e. it should match the output ofget_weights
).
Raises:
ValueError
: If the provided weights list does not match the layer's specifications.
tf.nn.rnn_cell.BasicLSTMCell.zero_state
zero_state(
batch_size,
dtype
)
Return zero-filled state tensor(s).
Args:
batch_size
: int, float, or unit Tensor representing the batch size.dtype
: the data type to use for the state.
Returns:
If state_size
is an int or TensorShape, then the return value is a
N-D
tensor of shape [batch_size, state_size]
filled with zeros.
If state_size
is a nested list or tuple, then the return value is
a nested list or tuple (of the same structure) of 2-D
tensors with
the shapes [batch_size, s]
for each s in state_size
.