blob: b558b8479e43420f2e794d38f546f8327292730f [file] [log] [blame] [view]
# Gluon Recurrent Neural Network API
## Overview
This document lists the recurrent neural network API in Gluon:
```eval_rst
.. currentmodule:: mxnet.gluon.rnn
```
### Recurrent Layers
Recurrent layers can be used in `Sequential` with other regular neural network layers.
For example, to construct a sequence labeling model where a prediction is made for each
time-step:
```python
model = mx.gluon.nn.Sequential()
with model.name_scope():
model.add(mx.gluon.nn.Embedding(30, 10))
model.add(mx.gluon.rnn.LSTM(20))
model.add(mx.gluon.nn.Dense(5, flatten=False))
model.initialize()
model(mx.nd.ones((2,3)))
```
```eval_rst
.. autosummary::
:nosignatures:
RNN
LSTM
GRU
```
### Recurrent Cells
Recurrent cells allows fine-grained control when defining recurrent models. User
can explicit step and unroll to construct complex networks. It provides more
flexibility but is slower than recurrent layers. Recurrent cells can be stacked
with `SequentialRNNCell`:
```python
model = mx.gluon.rnn.SequentialRNNCell()
with model.name_scope():
model.add(mx.gluon.rnn.LSTMCell(20))
model.add(mx.gluon.rnn.LSTMCell(20))
states = model.begin_state(batch_size=32)
inputs = mx.nd.random.uniform(shape=(5, 32, 10))
outputs = []
for i in range(5):
output, states = model(inputs[i], states)
outputs.append(output)
```
```eval_rst
.. autosummary::
:nosignatures:
RNNCell
LSTMCell
GRUCell
RecurrentCell
SequentialRNNCell
BidirectionalCell
DropoutCell
ZoneoutCell
ResidualCell
```
## API Reference
<script type="text/javascript" src='../../../_static/js/auto_module_index.js'></script>
```eval_rst
.. automodule:: mxnet.gluon.rnn
:members:
:imported-members:
```
<script>auto_index("api-reference");</script>