Giter Site home page Giter Site logo

jbregli / probabilistic-backpropagation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hips/probabilistic-backpropagation

1.0 2.0 0.0 131 KB

Implementation in C and Theano of the method Probabilistic Backpropagation for scalable Bayesian inference in deep neural networks.

License: GNU General Public License v2.0

Python 48.95% Shell 0.05% C 51.01%

probabilistic-backpropagation's Introduction

Probabilistic-Backpropagation

Implementation in C and Theano of the method Probabilistic Backpropagation for scalable Bayesian inference in deep neural networks.

This is an extended version of the code implementing the probabilistic backpropagation (PBP) method described in the paper

Jose Miguel Hernandez-Lobato and Ryan P. Adams. "Probabilistic Backpropagation for Scalable Learning of Bayesian Neural Networks" arXiv:1502.05336 [stat.ML], 2015.

The original code has been extended to scale the input to any neuron by the square root of the number of incoming connections from other neurons. This allows PBP to make accurate predictions in deep neural networks.

There are two folders "c" and "theano" containing implementations of the code in "c" and in "theano". The "c" version of the code is between 20 and 4 times faster than the theano version depending on the neural network size and the dataset size. To use the "c" version go to the folder "c/PBP_net" and run the script "compile.sh". You will need to have installed the "openblas" library for fast numerical algebra operations and "cython". For maximum speed, we recommend you to compile yourself the "open blas" library in your own machine. To compile the "c" code type

$ cd c/PBP_net ; ./compile.sh

In each folder, "c" and "theano", the python script test_PBP_net.py creates a two-hidden-layer neural network with 50 hidden units in each layer and fits a posterior approximation using the probabilistic backpropagation (PBP) method by doing 40 ADF passes over the training data. The data used is from the Boston Housing dataset. After the training, the script "test_PBP_net.py" computes and prints the test RMSE and the test log-likelihood. To run the script type

$ python test_PBP_net.py

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.