All Projects → lrjconan → RBP

lrjconan / RBP

Licence: MIT License
Recurrent Back Propagation, Back Propagation Through Optimization, ICML 2018

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
Cuda
1817 projects
shell
77523 projects

Projects that are alternatives of or similar to RBP

yoga-image-optimizer
A graphical tool to convert and optimize JPEG, PNG and WebP images (based on YOGA)
Stars: ✭ 85 (+142.86%)
Mutual labels:  optimization
pytorch
Improved LBFGS optimizer in PyTorch.
Stars: ✭ 16 (-54.29%)
Mutual labels:  optimization
OpenJij
OpenJij : Framework for the Ising model and QUBO.
Stars: ✭ 57 (+62.86%)
Mutual labels:  optimization
tungsten
Bring fusion to everyone
Stars: ✭ 13 (-62.86%)
Mutual labels:  optimization
structured-volume-sampling
A clean room implementation of Structured Volume Sampling by Bowles and Zimmermann in Unity
Stars: ✭ 27 (-22.86%)
Mutual labels:  optimization
RAWSim-O
A simulation framework for Robotic Mobile Fulfillment Systems
Stars: ✭ 82 (+134.29%)
Mutual labels:  optimization
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (+197.14%)
Mutual labels:  optimization
PEPit
PEPit is a package enabling computer-assisted worst-case analyses of first-order optimization methods.
Stars: ✭ 41 (+17.14%)
Mutual labels:  optimization
Max-value-Entropy-Search
Max-value Entropy Search for Efficient Bayesian Optimization
Stars: ✭ 43 (+22.86%)
Mutual labels:  optimization
NCVX
NCVX: A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning
Stars: ✭ 19 (-45.71%)
Mutual labels:  optimization
autogoal
A Python framework for program synthesis with a focus on Automated Machine Learning.
Stars: ✭ 153 (+337.14%)
Mutual labels:  optimization
Network-Distributed-Algorithm
Experiments for distributed optimization algorithms
Stars: ✭ 29 (-17.14%)
Mutual labels:  optimization
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+2554.29%)
Mutual labels:  optimization
eqsat
A language-generic implementation of equality saturation in Haskell
Stars: ✭ 15 (-57.14%)
Mutual labels:  optimization
simsopt
Simons Stellarator Optimizer Code
Stars: ✭ 28 (-20%)
Mutual labels:  optimization
dfogn
DFO-GN: Derivative-Free Optimization using Gauss-Newton
Stars: ✭ 20 (-42.86%)
Mutual labels:  optimization
olympus
Olympus: a benchmarking framework for noisy optimization and experiment planning
Stars: ✭ 38 (+8.57%)
Mutual labels:  optimization
elm-prepack-experiments
Experimenting with running built Elm programs through Prepack
Stars: ✭ 18 (-48.57%)
Mutual labels:  optimization
least-squares-cpp
A single header-only C++ library for least squares fitting.
Stars: ✭ 46 (+31.43%)
Mutual labels:  optimization
Train plus plus
Repo and code of the IEEE UIC paper: Train++: An Incremental ML Model Training Algorithm to Create Self-Learning IoT Devices
Stars: ✭ 17 (-51.43%)
Mutual labels:  optimization

RBP

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

@article{liao2018reviving,
  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},
  year={2018}
}

Setup

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

./setup.sh

Dependencies

Python 3, PyTorch(0.4.0)

Run Demos

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

    python run_exp.py -c config/X.yaml

Notes:

  • 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/rbp.py for more details.

Cite

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

Questions/Bugs

Please submit a Github issue or contact [email protected] if you have any questions or find any bugs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].