Right now I am considering of using pymc3[1] as the workhorse for Bayesian inference. It is fast, well-maintained library.
Towards a probabilistic framework of potential development. For a given model, you can run the forward model compute the consequences of the assumption it contains about the world (i.e., the model space which it represents), but it can also run backward (e.g. the equivalent of solving the inverse problem), to constrain the possible explanations from the data. This framework will likely interleave the forward and backwards representations to converge to the best explanations.
conda install pymc3
To fix the MKL_THREADING_LAYER error from Theano (a tensor library):
Going to System Properties -> Advanced -> Environment variables -> Add a New environment variable, and set name to MKL_THREADING_LAYER, and value to GNU.
[1] Salvatier, J, Wiecki TV, and Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2:e55 https://doi.org/10.7717/peerj-cs.55