Bayesian computation in PyTorch

junpenglao: Hi all, Just discover PyTorch yesterday, the dynamic graph idea is simply amazing! I am wondering if anybody is (or plans to) developing a Bayesian Computation package in PyTorch? Something like PyMC3 (theano) or Edward (tensorflow). I think the dynamic nature of PyTorch would be perfect for dirichlet process or mixture model, and Sequential Monte Carlo etc.

smth: 

stepelu: implement a selected number of variants of inference algorithms such as variational and MCMC inference (both traditional and scalable versions) separately from anything neural-network related make such framework easily applicable to the existing nn module implement basic functionalities for common statistical distributions
I will post an update when I have something to show.

apaszke: 

junpenglao: 

stepelu: 

junpenglao: I see, thanks for the info - better implementing them from scratch then.

AjayTalati: Just bumping this old thread to see if anyone’s working on variational inference using PyTorch?

smth: 

AjayTalati: Wow, Noah Goodman sold out? Never thought that would happen? Guess every man has his price! Now that you mention Uber - yes I remember they’ve been working on Bayesian Optimization for their massive routing problems a long time. I see they signed up Zoubin Ghahramani as head scientist too. I think principled Bayesian computation, overcomes many of the deficiencies of deep learning, and vice versa.  Check out Shakir’s NIPs 2016 slides

AjayTalati: please post here/let me know, when Uber or anyone else make public some sort of Black-Box variational inference engine public for PyTorch. Tensorflow is driving me nuts - once you’ve used PyTorch it’s painful to go back to TF! For example, the main KL inference routines, are well written and there’s not much TF dependency, see

yinhao: 

AjayTalati: thank you very much - I haven’t seen this library before, it looks very up to date and useful. If you are working with Gaussian Processes, another very useful library is GPflow, So it seems that there are now three variational inference libraries built upon Tensorflow by three different research groups, (Blei Lab, Tsinghua Machine Learning Group, and various contributors to GPflow)? Kind regard, Ajay

stepelu: I started working on different topics shortly after sending my last message so I didn’t make much progress yet. Now, however, I am back on a project which involves generative models and inference so I expect I’ll have more time to be working on this. Before proceeding there are a few preliminary points I’d like to discuss: What is the plan for stochastic graphs? For unbiased gradients, pathwise-type estimators come for free. Classes for statistical distributions? Separate gradient estimators? Assumptions on data shapes? Basically I’m looking for the PyTorch’s core team comments / design suggestions to the points I mentioned above, and on the ones I failed to consider!

joh4n: I am interested in contributing. I’m currently looking for a good package to test VI algorithms for big models and pytorch’s dynamic graph would make it a lot easier than working in theano or tensorflow.

stepelu: I’ll implement the Gamma, Beta and Dirichlet distributions too next week, sampling aside that would need a C/CUDA implementation (and it’s not trivial to do CUDA-efficiently and in a numerically stable way). I am also working on MCMC: Metropolis-RW, Langevin-RW, HMC, NUTS. Contributions are welcome, for instance: not yet implemented statistical distributions (let me know if you plan to work on any of the above) add missing kl-divergence implementations add mean and variance methods

emilemathieu: 

Andres_Masegosa: Any advances? Highly interested too.

ngoodman: 

tom: Best regards Thomas