-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Timeline
What a year! What started out as a very diffuse outlook has converged to an exciting future for PyMC3: Our backend changed from Theano through Theano-PyMC into Aesara, a next-generation graph computation engine.
This means that the library you know as PyMC3 will prevail after all, albeit with some breaking changes coming up.
First of all, the 3 in PyMC3 no longer has anything to do with the package version. Better think of it as "PyMC for Python 3" compared to the predecessor "PyMC2".
PyMC3 v3 depends on theano(-pymc) whereas pymc3 v4 depends on aesara.
Branches:
-
masterhas already switched to Aesara. The next release from this branch will bepymc3==4.0.0. -
v3is for backporting critical bugfixes. The next release from this branch will bepymc3==3.11.2. -
v4is our development branch forpymc3==4.0.0. It will eventually merge intomaster.
We are currently switching the internals of RandomVariable Op was recently merged into Theano-PyMC.
We are currently switching the inner workings of PyMC3 from its pm.Distribution class to the new RandomVariable Op that was introduced by Theano-PyMC 1.0.13.
This dramatically simplifies prior/posterior predictive sampling, solves most if not all shape problems and allows us to delete huge chunks of internal code.
Even though the internals of PyMC3 4.x will be quite different to PyMC3 3.x, we can keep the user-facing API largely identical.
Custom distributions will have to be refactored, but most models will work just fine!
The same is true for commonly used functions for sampling and prior/posterior predictive.
Check out milestones on PyMC3 and Aesara.
- Everything in the
vNextmilestone has topmost priority. - Issues in milestones later than
vNextmay depend on things from a previous milestone. - Issues outside of milestones are considered "backlog". They don't block a release, but fixing them is still an important contribution.