Recurrent Back Propagation
Switch branches/tags
Nothing to show
Clone or download
rjliao first commit
Latest commit 43bc0ab Jul 10, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
config first commit Jul 9, 2018
data/citation first commit Jul 9, 2018
dataset first commit Jul 9, 2018
model first commit Jul 9, 2018
operators first commit Jul 9, 2018
runner first commit Jul 9, 2018
utils first commit Jul 9, 2018
LICENSE Initial commit Jul 9, 2018 first commit Jul 9, 2018 first commit Jul 9, 2018 first commit Jul 9, 2018


This is the PyTorch implementation of Recurrent Back Propagation as described in the following paper:

  title={Reviving and Improving Recurrent Back-Propagation},
  author={Liao, Renjie and Xiong, Yuwen and Fetaya, Ethan and Zhang, Lisa and Yoon, KiJung and Pitkow, Xaq and Urtasun, Raquel and Zemel, Richard},
  journal={arXiv preprint arXiv:1803.06396},


To set up experiments, we need to build our customized operators by running the following scripts:



Python 3, PyTorch(0.4.0)

Run Demos

  • To run experiments X where X is one of {hopfield, cora, pubmed, hypergrad}:

    python -c config/X.yaml


  • Most hyperparameters in the configuration yaml file are self-explanatory.
  • To switch between BPTT, TBPTT and RBP variants, you need to specify grad_method in the config file.
  • Conjugate gradient based RBP requires support of forward mode auto-differentiation which we only provided for the experiments of Hopfield networks and graph neural networks (GNNs). You can check the comments in model/ for more details.


Please cite our paper if you use this code in your research work.


Please submit a Github issue or contact if you have any questions or find any bugs.