From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

AI::MXNet::RNN::Params - A container for holding variables.

DESCRIPTION

A container for holding variables.
Used by RNN cells for parameter sharing between cells.
Parameters
----------
prefix : str
All variables name created by this container will
be prepended with the prefix

get

Get a variable with the name or create a new one if does not exist.
Parameters
----------
$name : str
name of the variable
@kwargs:
more arguments that are passed to mx->sym->Variable call

NAME

AI::MXNet::RNNCell::Base

DESCRIPTION

Abstract base class for RNN cells
Parameters
----------
prefix : str
prefix for name of layers
(and name of weight if params is undef)
params : AI::MXNet::RNN::Params or undef
container for weight sharing between cells.
created if undef.

reset

Reset before re-using the cell for another graph

call

Construct symbol for one step of RNN.
Parameters
----------
$inputs : mx->sym->Variable
input symbol, 2D, batch * num_units
$states : mx->sym->Variable or ArrayRef[AI::MXNet::Symbol]
state from previous step or begin_state().
Returns
-------
$output : AI::MXNet::Symbol
output symbol
$states : ArrayRef[AI::MXNet::Symbol]
state to next step of RNN.
Can be called via overloaded &{}: &{$cell}($inputs, $states);

params

Parameters of this cell

state_shape

shape(s) of states

state_info

shape and layout information of states

begin_state

Initial state for this cell.
Parameters
----------
:$func : sub ref, default is AI::MXNet::Symbol->can('zeros')
Function for creating initial state.
Can be AI::MXNet::Symbol->can('zeros'),
AI::MXNet::Symbol->can('uniform'), AI::MXNet::Symbol->can('Variable') etc.
Use AI::MXNet::Symbol->can('Variable') if you want to directly
feed the input as states.
@kwargs :
more keyword arguments passed to func. For example
mean, std, dtype, etc.
Returns
-------
$states : ArrayRef[AI::MXNet::Symbol]
starting states for first RNN step

unpack_weights

Unpack fused weight matrices into separate
weight matrices
Parameters
----------
$args : HashRef[AI::MXNet::NDArray]
hash ref containing packed weights.
usually from AI::MXNet::Module->get_output()
Returns
-------
$args : HashRef[AI::MXNet::NDArray]
hash ref with weights associated with
this cell, unpacked.

pack_weights

Pack fused weight matrices into common
weight matrices
Parameters
----------
args : HashRef[AI::MXNet::NDArray]
hash ref containing unpacked weights.
Returns
-------
$args : HashRef[AI::MXNet::NDArray]
hash ref with weights associated with
this cell, packed.

unroll

Unroll an RNN cell across time steps.
Parameters
----------
:$length : Int
number of steps to unroll
:$inputs : AI::MXNet::Symbol, array ref of Symbols, or undef
if inputs is a single Symbol (usually the output
of Embedding symbol), it should have shape
of [$batch_size, $length, ...] if layout == 'NTC' (batch, time series)
or ($length, $batch_size, ...) if layout == 'TNC' (time series, batch).
If inputs is a array ref of symbols (usually output of
previous unroll), they should all have shape
($batch_size, ...).
If inputs is undef, a placeholder variables are
automatically created.
:$begin_state : array ref of Symbol
input states. Created by begin_state()
or output state of another cell. Created
from begin_state() if undef.
:$input_prefix : str
prefix for automatically created input
placehodlers.
:$layout : str
layout of input symbol. Only used if the input
is a single Symbol.
:$merge_outputs : Bool
If 0, returns outputs as an array ref of Symbols.
If 1, concatenates the output across the time steps
and returns a single symbol with the shape
[$batch_size, $length, ...) if the layout equal to 'NTC',
or [$length, $batch_size, ...) if the layout equal tp 'TNC'.
If undef, output whatever is faster
Returns
-------
$outputs : array ref of Symbol or Symbol
output symbols.
$states : Symbol or nested list of Symbol
has the same structure as begin_state()

NAME

AI::MXNet::RNN::Cell

DESCRIPTION

Simple recurrent neural network cell
Parameters
----------
num_hidden : int
number of units in output symbol
activation : str or Symbol, default 'tanh'
type of activation function
prefix : str, default 'rnn_'
prefix for name of layers
(and name of weight if params is undef)
params : AI::MXNet::RNNParams or undef
container for weight sharing between cells.
created if undef.

NAME

AI::MXNet::RNN::LSTMCell

DESCRIPTION

Long-Short Term Memory (LSTM) network cell.
Parameters
----------
num_hidden : int
number of units in output symbol
prefix : str, default 'lstm_'
prefix for name of layers
(and name of weight if params is undef)
params : AI::MXNet::RNN::Params or None
container for weight sharing between cells.
created if undef.
forget_bias : bias added to forget gate, default 1.0.
Jozefowicz et al. 2015 recommends setting this to 1.0

NAME

AI::MXNet::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
----------
num_hidden : int
number of units in output symbol
prefix : str, default 'gru_'
prefix for name of layers
(and name of weight if params is undef)
params : AI::MXNet::RNN::Params or undef
container for weight sharing between cells.
created if undef.

NAME

AI::MXNet::RNN::FusedCell

DESCRIPTION

Fusing RNN layers across time step into one kernel.
Improves speed but is less flexible. Currently only
supported if using cuDNN on GPU.

unfuse

Unfuse the fused RNN
Returns
-------
$cell : AI::MXNet::RNN::SequentialCell
unfused cell that can be used for stepping, and can run on CPU.

NAME

AI:MXNet::RNN::SequentialCell

DESCRIPTION

Sequentially stacking multiple RNN cells
Parameters
----------
params : AI::MXNet::RNN::Params or undef
container for weight sharing between cells.
created if undef.

add

Append a cell to the stack.
Parameters
----------
$cell : AI::MXNet::RNN::Cell::Base

NAME

AI::MXNet::RNN::BidirectionalCell

DESCRIPTION

Bidirectional RNN cell
Parameters
----------
l_cell : AI::MXNet::RNN::Cell::Base
cell for forward unrolling
r_cell : AI::MXNet::RNN::Cell::Base
cell for backward unrolling
output_prefix : str, default 'bi_'
prefix for name of output

NAME

AI::MXNet::RNN::Conv::Base

DESCRIPTION

Abstract base class for Convolutional RNN cells

NAME

AI::MXNet::RNN::ConvCell

DESCRIPTION

Convolutional RNN cells
Parameters
----------
input_shape : array ref of int
Shape of input in single timestep.
num_hidden : int
Number of units in output symbol.
h2h_kernel : array ref of int, default (3, 3)
Kernel of Convolution operator in state-to-state transitions.
h2h_dilate : array ref of int, default (1, 1)
Dilation of Convolution operator in state-to-state transitions.
i2h_kernel : array ref of int, default (3, 3)
Kernel of Convolution operator in input-to-state transitions.
i2h_stride : array ref of int, default (1, 1)
Stride of Convolution operator in input-to-state transitions.
i2h_pad : array ref of int, default (1, 1)
Pad of Convolution operator in input-to-state transitions.
i2h_dilate : array ref of int, default (1, 1)
Dilation of Convolution operator in input-to-state transitions.
activation : str or Symbol,
default functools.partial(symbol.LeakyReLU, act_type='leaky', slope=0.2)
Type of activation function.
prefix : str, default 'ConvRNN_'
Prefix for name of layers (and name of weight if params is None).
params : RNNParams, default None
Container for weight sharing between cells. Created if None.
conv_layout : str, , default 'NCHW'
Layout of ConvolutionOp

NAME

AI::MXNet::RNN::ConvLSTMCell

DESCRIPTION

Convolutional LSTM network cell.
Reference:
Xingjian et al. NIPS2015

NAME

AI::MXNet::RNN::ConvGRUCell

DESCRIPTION

Convolutional GRU network cell.

NAME

AI::MXNet::RNN::ModifierCell

DESCRIPTION

Base class for modifier cells. A modifier
cell takes a base cell, apply modifications
on it (e.g. Dropout), and returns a new cell.
After applying modifiers the base cell should
no longer be called directly. The modifer cell
should be used instead.

NAME

AI::MXNet::RNN::DropoutCell

DESCRIPTION

Apply the dropout on base cell

NAME

AI::MXNet::RNN::ZoneoutCell

DESCRIPTION

Apply Zoneout on base cell.

NAME

AI::MXNet::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.