This project is an implementation of the Clockwork RNN (see paper).
The model can be found under models/clockwork_rnn.py
.
The current main.py
replicates the sequence generation task
described in the paper, but the implementation should be able
to handle other tasks.
To monitor the training, you can use TensorBoard:
tensorboard --reload_interval 2 --logdir log
We ran different sizes of Clockwork RNN as well as LSTMs to compare performance with similar numbers of parameters.
The following table summarizes the results:
Number of parameters | Clockwork RNN (MSE) | LSTM (MSE) |
---|---|---|
~70 | 4.3e-2 | 1.5e-1 |
~480 | 3.4e-3 | 1.0e-1 |
~800 | 1.8e-3 | 9.3e-2 |
They were obtained with a learning rate of 0.01 for Clockwork RNN, and 0.001 for LSTM (which was more unstable).
The following graph shows the MSE loss during training:
The following plot shows the generated signal (and the target) for the best performing Clockwork RNN:
Generated signals for other models can be found under results/