-
-
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:
-
master
has already switched to Aesara. The next release from this branch will bepymc3==4.0.0
. -
v3
is for backporting critical bugfixes. The next release from this branch will bepymc3==3.11.2
. -
v4
is 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
vNext
milestone has topmost priority. - Issues in milestones later than
vNext
may 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.