Architecture with coupled recurrent gate as well as coupled depth
gate, designed to improve information flow through stacked RNNs. As the
architecture uses depth gating, the dimensionality of the depth
output (y) also should not change through depth (input size == output size).
To achieve this, the first layer of a stacked Intersection RNN projects
the inputs to N (num units) dimensions. Therefore when initializing an
IntersectionRNNCell, one should set num_in_proj = N for the first layer
and use default settings for subsequent layers.
This implements the recurrent cell from the paper:
Jasmine Collins, Jascha Sohl-Dickstein, and David Sussillo.
"Capacity and Trainability in Recurrent Neural Networks" Proc. ICLR 2017.
The Intersection RNN is built for use in deeply stacked
RNNs so it may not achieve best performance with depth 1.
Args
num_units
int, The number of units in the +RNN cell
num_in_proj
(optional) int, The input dimensionality for the RNN.
If creating the first layer of an +RNN, this should be set to
num_units. Otherwise, this should be set to None (default).
If None, dimensionality of inputs should be equal to num_units,
otherwise ValueError is thrown.
initializer
(optional) The initializer to use for the weight matrices.
forget_bias
(optional) float, default 1.0, The initial bias of the
forget gates, used to reduce the scale of forgetting at the beginning
of the training.
y_activation
(optional) Activation function of the states passed
through depth. Default is 'tf.nn.relu.
</td>
</tr><tr>
<td>reuse</td>
<td>
(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.
Attributes
graph
DEPRECATED FUNCTION
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.
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.
[null,null,["Last updated 2020-10-01 UTC."],[],[],null,["# tf.contrib.rnn.IntersectionRNNCell\n\n\u003cbr /\u003e\n\n|------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/contrib/rnn/python/ops/rnn_cell.py#L1716-L1843) |\n\nIntersection Recurrent Neural Network (+RNN) cell.\n\nInherits From: [`RNNCell`](../../../tf/nn/rnn_cell/RNNCell) \n\n tf.contrib.rnn.IntersectionRNNCell(\n num_units, num_in_proj=None, initializer=None, forget_bias=1.0,\n y_activation=tf.nn.relu, reuse=None\n )\n\nArchitecture with coupled recurrent gate as well as coupled depth\ngate, designed to improve information flow through stacked RNNs. As the\narchitecture uses depth gating, the dimensionality of the depth\noutput (y) also should not change through depth (input size == output size).\nTo achieve this, the first layer of a stacked Intersection RNN projects\nthe inputs to N (num units) dimensions. Therefore when initializing an\nIntersectionRNNCell, one should set `num_in_proj = N` for the first layer\nand use default settings for subsequent layers.\n\nThis implements the recurrent cell from the paper:\n\n\u003chttps://arxiv.org/abs/1611.09913\u003e\n\nJasmine Collins, Jascha Sohl-Dickstein, and David Sussillo.\n\"Capacity and Trainability in Recurrent Neural Networks\" Proc. ICLR 2017.\n\nThe Intersection RNN is built for use in deeply stacked\nRNNs so it may not achieve best performance with depth 1.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `num_units` | int, The number of units in the +RNN cell |\n| `num_in_proj` | (optional) int, The input dimensionality for the RNN. If creating the first layer of an +RNN, this should be set to `num_units`. Otherwise, this should be set to `None` (default). If `None`, dimensionality of `inputs` should be equal to `num_units`, otherwise ValueError is thrown. |\n| `initializer` | (optional) The initializer to use for the weight matrices. |\n| `forget_bias` | (optional) float, default 1.0, The initial bias of the forget gates, used to reduce the scale of forgetting at the beginning of the training. |\n| `y_activation` | (optional) Activation function of the states passed through depth. Default is 'tf.nn.relu`. \u003c/td\u003e \u003c/tr\u003e\u003ctr\u003e \u003ctd\u003e`reuse`\u003c/td\u003e \u003ctd\u003e (optional) Python boolean describing whether to reuse variables in an existing scope. If not`True\\`, and the existing scope already has the given variables, an error is raised. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Attributes ---------- ||\n|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `graph` | DEPRECATED FUNCTION \u003cbr /\u003e | **Warning:** THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Stop using this property because tf.layers layers no longer track their graph. |\n| `output_size` | Integer or TensorShape: size of outputs produced by this cell. |\n| `scope_name` | \u003cbr /\u003e |\n| `state_size` | size(s) of state(s) used by this cell. \u003cbr /\u003e It can be represented by an Integer, a TensorShape or a tuple of Integers or TensorShapes. |\n\n\u003cbr /\u003e\n\nMethods\n-------\n\n### `get_initial_state`\n\n[View source](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/python/ops/rnn_cell_impl.py#L281-L309) \n\n get_initial_state(\n inputs=None, batch_size=None, dtype=None\n )\n\n### `zero_state`\n\n[View source](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/python/ops/rnn_cell_impl.py#L311-L340) \n\n zero_state(\n batch_size, dtype\n )\n\nReturn zero-filled state tensor(s).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ||\n|--------------|---------------------------------------------------------|\n| `batch_size` | int, float, or unit Tensor representing the batch size. |\n| `dtype` | the data type to use for the state. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ||\n|---|---|\n| 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. \u003cbr /\u003e 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`. ||\n\n\u003cbr /\u003e"]]