NAME

AI::MXNet::Gluon::RNN::RecurrentCell

DESCRIPTION

Abstract role for RNN cells

Parameters
----------
prefix : str, optional
    Prefix for names of `Block`s
    (this prefix is also used for names of weights if `params` is `None`
    i.e. if `params` are being created and not reused)
params : Parameter or None, optional
    Container for weight sharing between cells.
    A new Parameter container is created if `params` is `None`.

reset

Reset before re-using the cell for another graph.

state_info

Shape and layout information of states

begin_state

Initial state for this cell.

Parameters
----------
$func : CodeRef, default sub { AI::MXNet::Symbol->zeros(@_) }
    Function for creating initial state.

    For Symbol API, func can be `symbol.zeros`, `symbol.uniform`,
    `symbol.var etc`. Use `symbol.var` if you want to directly
    feed input as states.

    For NDArray API, func can be `ndarray.zeros`, `ndarray.ones`, etc.
$batch_size: int, default 0
    Only required for NDArray API. Size of the batch ('N' in layout)
    dimension of input.

%kwargs :
    Additional keyword arguments passed to func. For example
    `mean`, `std`, `dtype`, etc.

Returns
-------
states : nested array ref of Symbol
    Starting states for the first RNN step.

unroll

Unrolls an RNN cell across time steps.

Parameters
----------
$length : int
    Number of steps to unroll.
$inputs : Symbol, list of Symbol, or None
    If `inputs` is a single Symbol (usually the output
    of Embedding symbol), it should have shape
    (batch_size, length, ...) if `layout` is 'NTC',
    or (length, batch_size, ...) if `layout` is 'TNC'.

    If `inputs` is a list of symbols (usually output of
    previous unroll), they should all have shape
    (batch_size, ...).
:$begin_state : nested list of Symbol, optional
    Input states created by `begin_state()`
    or output state of another cell.
    Created from `begin_state()` if `None`.
:$layout : str, optional
    `layout` of input symbol. Only used if inputs
    is a single Symbol.
:$merge_outputs : bool, optional
    If `False`, returns outputs as a list of Symbols.
    If `True`, concatenates output across time steps
    and returns a single symbol with shape
    (batch_size, length, ...) if layout is 'NTC',
    or (length, batch_size, ...) if layout is 'TNC'.
    If `None`, output whatever is faster.

Returns
-------
outputs : list of Symbol or Symbol
    Symbol (if `merge_outputs` is True) or list of Symbols
    (if `merge_outputs` is False) corresponding to the output from
    the RNN from this unrolling.

states : list of Symbol
    The new state of this RNN after this unrolling.
    The type of this symbol is same as the output of `begin_state()`.

forward

Unrolls the recurrent cell for one time step.

Parameters
----------
inputs : sym.Variable
    Input symbol, 2D, of shape (batch_size * num_units).
states : list of sym.Variable
    RNN state from previous step or the output of begin_state().

Returns
-------
output : Symbol
    Symbol corresponding to the output from the RNN when unrolling
    for a single time step.
states : list of Symbol
    The new state of this RNN after this unrolling.
    The type of this symbol is same as the output of `begin_state()`.
    This can be used as an input state to the next time step
    of this RNN.

See Also
--------
begin_state: This function can provide the states for the first time step.
unroll: This function unrolls an RNN for a given number of (>=1) time steps.

NAME

AI::MXNet::Gluon::RNN::RNNCell

DESCRIPTION

Simple recurrent neural network cell.

Parameters
----------
hidden_size : int
    Number of units in output symbol
activation : str or Symbol, default 'tanh'
    Type of activation function.
i2h_weight_initializer : str or Initializer
    Initializer for the input weights matrix, used for the linear
    transformation of the inputs.
h2h_weight_initializer : str or Initializer
    Initializer for the recurrent weights matrix, used for the linear
    transformation of the recurrent state.
i2h_bias_initializer : str or Initializer
    Initializer for the bias vector.
h2h_bias_initializer : str or Initializer
    Initializer for the bias vector.
prefix : str, default 'rnn_'
    Prefix for name of `Block`s
    (and name of weight if params is `None`).
params : Parameter or None
    Container for weight sharing between cells.
    Created if `None`.

NAME

AI::MXNet::Gluon::RNN::LSTMCell

DESCRIPTION

Long-Short Term Memory (LSTM) network cell.

Parameters
----------
hidden_size : int
    Number of units in output symbol.
i2h_weight_initializer : str or Initializer
    Initializer for the input weights matrix, used for the linear
    transformation of the inputs.
h2h_weight_initializer : str or Initializer
    Initializer for the recurrent weights matrix, used for the linear
    transformation of the recurrent state.
i2h_bias_initializer : str or Initializer, default 'lstmbias'
    Initializer for the bias vector. By default, bias for the forget
    gate is initialized to 1 while all other biases are initialized
    to zero.
h2h_bias_initializer : str or Initializer
    Initializer for the bias vector.
prefix : str, default 'lstm_'
    Prefix for name of `Block`s
    (and name of weight if params is `None`).
params : Parameter or None
    Container for weight sharing between cells.
    Created if `None`.

NAME

AI::MXNet::Gluon::RNN::GRUCell

DESCRIPTION

Gated Rectified Unit (GRU) network cell.
Note: this is an implementation of the cuDNN version of GRUs
(slight modification compared to Cho et al. 2014).

Parameters
----------
hidden_size : int
    Number of units in output symbol.
i2h_weight_initializer : str or Initializer
    Initializer for the input weights matrix, used for the linear
    transformation of the inputs.
h2h_weight_initializer : str or Initializer
    Initializer for the recurrent weights matrix, used for the linear
    transformation of the recurrent state.
i2h_bias_initializer : str or Initializer
    Initializer for the bias vector.
h2h_bias_initializer : str or Initializer
    Initializer for the bias vector.
prefix : str, default 'gru_'
    prefix for name of `Block`s
    (and name of weight if params is `None`).
params : Parameter or None
    Container for weight sharing between cells.
    Created if `None`.

NAME

AI::MXNet::Gluon::RNN::SequentialRNNCell

DESCRIPTION

Sequentially stacking multiple RNN cells.

add

Appends a cell into the stack.

Parameters
----------
    cell : rnn cell

NAME

AI::MXNet::Gluon::RNN::DropoutCell

DESCRIPTION

Applies dropout on input.

Parameters
----------
rate : float
    Percentage of elements to drop out, which
    is 1 - percentage to retain.

NAME

AI::MXNet::Gluon::RNN::ModifierCell

DESCRIPTION

Base class for modifier cells. A modifier
cell takes a base cell, apply modifications
on it (e.g. Zoneout), and returns a new cell.

After applying modifiers the base cell should
no longer be called directly. The modifier cell
should be used instead.

NAME

AI::MXNet::Gluon::RNN::ZoneoutCell

DESCRIPTION

Applies Zoneout on base cell.

NAME

AI::MXNet::Gluon::RNN::ResidualCell

DESCRIPTION

Adds residual connection as described in Wu et al, 2016
(https://arxiv.org/abs/1609.08144).
Output of the cell is output of the base cell plus input.

NAME

AI::MXNet::Gluon::RNN::BidirectionalCell

DESCRIPTION

Bidirectional RNN cell.

Parameters
----------
l_cell : RecurrentCell
    Cell for forward unrolling
r_cell : RecurrentCell
    Cell for backward unrolling