PyMC v3.11.2 Release Notes

Release Date: 2021-03-14 // 7 months ago
  • ๐Ÿ†• New Features

    • ๐Ÿ‘€ pm.math.cartesian can now handle inputs that are themselves >1D (see #4482).
    • ๐Ÿ‘€ Statistics and plotting functions that were removed in 3.11.0 were brought back, albeit with deprecation warnings if an old naming scheme is used (see #4536). In order to future proof your code, rename these function calls:
      • pm.traceplot โ†’ pm.plot_trace
      • pm.compareplot โ†’ pm.plot_compare (here you might need to rename some columns in the input according to the arviz.plot_compare documentation)
      • pm.autocorrplot โ†’ pm.plot_autocorr
      • pm.forestplot โ†’ pm.plot_forest
      • pm.kdeplot โ†’ pm.plot_kde
      • pm.energyplot โ†’ pm.plot_energy
      • pm.densityplot โ†’ pm.plot_density
      • pm.pairplot โ†’ pm.plot_pair

    ๐Ÿšง Maintenance

    • ๐Ÿ‘€ โš  Our memoization mechanism wasn't robust against hash collisions (#4506), sometimes resulting in incorrect values in, for example, posterior predictives. The pymc3.memoize module was removed and replaced with cachetools. The hashable function and WithMemoization class were moved to pymc3.util (see #4525).
    • pm.make_shared_replacements now retains broadcasting information which fixes issues with Metropolis samplers (see #4492).

    ๐Ÿš€ Release manager for 3.11.2: Michael Osthege (@michaelosthege)

Previous changes from v3.11.1

  • ๐Ÿ†• New Features

    • ๐Ÿ‘€ Automatic imputations now also work with ndarray data, not just pd.Series or pd.DataFrame (see#4439).
    • pymc3.sampling_jax.sample_numpyro_nuts now returns samples from transformed random variables, rather than from the unconstrained representation (see #4427).

    ๐Ÿšง Maintenance

    • ๐Ÿ›  We upgraded to Theano-PyMC v1.1.2 which includes bugfixes for...
      • โš  a problem with tt.switch that affected the behavior of several distributions, including at least the following special cases (see #4448)
      • Bernoulli when all the observed values were the same (e.g., [0, 0, 0, 0, 0]).
      • TruncatedNormal when sigma was constant and mu was being automatically broadcasted to match the shape of observations.
      • Warning floods and compiledir locking (see #4444)
    • ๐Ÿ‘€ math.log1mexp_numpy no longer raises RuntimeWarning when given very small inputs. These were commonly observed during NUTS sampling (see #4428).
    • ๐Ÿ‘€ ScalarSharedVariable can now be used as an input to other RVs directly (see #4445).
    • ๐Ÿ‘€ pm.sample and pm.find_MAP no longer change the start argument (see #4458).
    • ๐Ÿ›  Fixed Dirichlet.logp method to work with unit batch or event shapes (see #4454).
    • ๐Ÿ›  Bugfix in logp and logcdf methods of Triangular distribution (see #4470).

    ๐Ÿš€ Release manager for 3.11.1: Michael Osthege (@michaelosthege)