Recurrent Neural Network with External Memory in Keras
This is an implementation of a special kind of RNN which uses a 3-D external memory component to learn long range patterns in sequences. This is in contrast to LSTMs and GRUs which use 2-D hidden states. Though slower than LSTMs and GRUs, RNN-EMs can yield better results with lesser number of parameters.
API
RNN-EM implements the Recurrent api in Keras. RNN-EM requires 2 additional arguments:
int
. Number of memory slots.int
. Size of each memory slot.Example
from keras.models import Sequential
model = Sequential()
model.add(RNNEM(input_dim=10, output_dim=10, nb_slots=5, memory_size=10))
model.compile(loss='mse', optimizer='sgd')