GithubHelp home page GithubHelp logo

dhananjayashok / hybrid-solver-nn-training Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 487 KB

Combining Gradient Descent with MILP Solvers to make a more accurate and efficient training algorithm

Home Page: https://dhananjayashok.github.io/Hybrid-Solver-NN-Training/

Python 100.00%

hybrid-solver-nn-training's Introduction

Solver + NN Training of Neural Networks

This is our implementation of the GDSolver Algorithm, a hybrid training algorithm for neural networks that interprets the training of the final layer as an MILP problem, and in doing so tunnels through local minima.

This code was written by Dhananjay Ashok, who is also the lead author on the paper on the same topic: Solver + NN Training of Neural Networks published at IJCAI22. The other authors of the paper are - Vineel Nagisetty, Christopher Srinivasa and Vijay Ganesh.

Prerequisites

  • Python 3.6+

Clone this repository:

git clone https://github.com/DhananjayAshok/Hybrid-Solver-NN-Training GDSolver
cd GDSolver

Setup

Install and Obtain a License for Gurobi Solver (GurobiPy) Install required python packages (pytorch, numpy, pandas, matplotlib)

To run the MNIST Training Experiment

python train.py

To run other experiments, with different parameters, datasets and models see the various options of train.py (models and data in appropriate python files).

The key addition of our algorithm are in the files

  • gurobi_modules.py: MILPModel has mapping of MILP problem to and from NN
  • algorithm.py: For the training algorithms.

Citation

If you use our work, please cite our paper. Will add link upon publication

License: CC BY-NC 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. For any commercial uses or derivatives, please contact us.

hybrid-solver-nn-training's People

Contributors

dhananjayashok avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.