-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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".
Depending on the release version, PyMC3 depends on different graph computation backends:
-
pymc3 <3.10
depends on Theano -
pymc3 >=3.10,<4
depends on Theano-PyMC -
pymc3 >=4
will depend 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 a
vNext
milestone has topmost priority. - Issues outside of milestones are considered "backlog". They don't block a release, but fixing them is still an important contribution.
- On the
v4
branch you can help by picking disabled/xfailed tests and work on making them pass.
v4
branch, we are currently not accepting PRs into the master
branch. Instead please open PRs into v4
.