Bayesian dessert for Lasagne
Recent results in Bayesian statistics for constructing robust neural networks have proved that it is one of the best ways to deal with uncertainty, overfitting but still having good performance. Gelato will help to use bayes for neural networks. Library heavily relies on Theano, Lasagne and PyMC3.
- from github (assumes bleeding edge pymc3 installed)
# pip install git+git://github.com/pymc-devs/pymc3.git pip install git+https://github.com/ferrine/gelato.git
- from source
git clone https://github.com/ferrine/gelato pip install -r gelato/requirements.txt pip install -e gelato
I use generic approach for decorating all Lasagne at once. Thus, for using Gelato you need to replace import statements for layers only. For constructing a network you need to be the in pm.Model context environment.
lasagne.layers.noiseis not supported
lasagne.layers.normalizationis not supported (theano problems with default updates)
- functions from
lasagne.layersare hidden in
gelatoas they use Lasagne classes. Some exceptions are done for
lasagne.layers.helpers. I'll try to solve the problem generically in future.
For comprehensive example of using
Gelato you can reference this notebook
spec class can be used standalone so feel free to use it everywhere
Charles Blundell et al: "Weight Uncertainty in Neural Networks" (arXiv preprint arXiv:1505.05424)