Pyro Versions Save

Deep universal probabilistic programming with Python and PyTorch

1.5.2

3 years ago

This patch release merely

  • Pins to requirements to torch<1.8 to avoid breaking changes in torch 1.8.0 (introduced in pytorch/pytorch#50547 pytorch/pytorch#50581).
  • Fixes an fft bug #2731

1.5.1

3 years ago

New features

Bug fixes

  • #2683 Support PyTorch 1.7
  • #2682 Fix help(MyDistribution)
  • #2679 Fix TraceEnum_ELBO.compute_marginals()
  • #2677 Warn if infer_discrete() finds no discrete sites

1.5.0

3 years ago

New features

Breaking changes

  • Require PyTorch 1.6.
  • Drop support for Python 3.5; require Python 3.6+.
  • Zero inflated distributions changed interface. #2643

Bug fixes & performance tweaks

  • pyro.factor statements are now allowed in guides without warning. #2664
  • Fix model-directed subsampling in autoguides. #2638
  • Fix sample shape bug in LKJCorrCholesky distribution. #2617
  • Speed up log-matmul-exp operations in discrete enumeration and DiscreteHMM. #2640
  • Fix potential_fn issues in MCMC. #2591

1.4.0

3 years ago

New features

Bug fixes

  • Support sequential plates in RenyiELBO #2541
  • Fixes to AffineAutogregressive #2504
  • Fixes to BatchNorm TransformModule #2459
  • Fixes to how some transforms handle parameters #2544
  • Fixes to reraising logic that clean up error reporting during inference #2494
  • many other fixes to documentation and code

1.3.1

4 years ago

New features

  • A new Spline transform which implements element-wise rational spline bijections of linear order.
  • A new ConditionalAffineCoupling transform which implements the affine coupling layer of RealNVP that conditions on an additional context variable.

Enhancements to the pyro.contrib.forecast module

  • Support drawing samples in batches.
  • Add walltime to backtest to measure performance of model training and forecasting.
  • Support more likelihood distributions: Geometric, NegativeBinomial, ZeroInflatedNegativeBinomial.

Bug fixes

  • #2399 raises an error when HMC/NUTS is used for a model with subsampling.
  • #2390 makes PyroModule compatible with torch.nn.RNN.
  • #2388 allows unused params in CSIS inference.
  • #2384 fixes some caching issues in calculation of log_abs_det_jacobian of TransformModules
  • #2365 fixes a naming bug in LocScaleReparam whereby all loc-scale reparameterized sites shared a single centeredness parameter.
  • #2355 makes jit_compile=True flag in HMC/NUTS work for models with pyro.param statements.

1.3.0

4 years ago

New features

Bug fixes

  • #2345 remove pillow-simd dependency
  • #2327 Make pyro.deterministic not warn when called outside of inference
  • #2321 Support plates in RenyiELBO
  • #2266 Fixes to transform handling in MCMC api

1.2.1

4 years ago

Patches 1.2.0 with the following bug fixes:

  • Fix for MCMC with parallel chains using multiprocessing, where transforms to the latent sites' support was not being correctly stored.
  • Other minor rendering related fixes for tutorials.

1.2.0

4 years ago

Misc changes

  • Updated to PyTorch 1.4.0 and torchvision 0.5.0.
  • Changed license from MIT to Apache 2.0 and removed Uber CLA as part of Pyro's move to the Linux foundation.

Reparameterization

This release adds a new effect handler and a collection of strategies that reparameterize models to improve geometry. These tools are largely orthogonal to other inference tools in Pyro, and can be used with SVI, MCMC, and other inference algorithms.

Other new features

Bug fixes

  • #2263 fixes MCMC api to allow implementations other than HMC and NUTS.
  • #2244 fixes an event_dim issue in ConditionedPlanar flow.
  • #2243 fixes a bug in AffineCoupling.
  • #2227 fixes device placement of the MultivariateStudentT.df param.
  • #2226 fixes an edge case bug in discrete enumeration.

1.1.0

4 years ago

New Features

New distributions and transforms

Other Changes / Bug Fixes

  • pyro.util.save_visualization has been deprecated, and dependency on graphviz is removed.
  • #2197 fixed a naming bug in PyroModule that affected mutliple sub-PyroModules with conflicting names.
  • #2192 Bug fix in Planar normalizing flow implementation
  • #2188 Make error messages for incorrect arguments to effect handlers more informative

1.0.0

4 years ago

The objective of this release is to stabilize Pyro's interface and thereby make it safer to build high level components on top of Pyro.

Stability statement

  • Behavior of documented APIs will remain stable across minor releases, except for bug fixes and features marked EXPERIMENTAL or DEPRECATED.
  • Serialization formats will remain stable across patch releases, but may change across minor releases (e.g. if you save a model in 1.0.0, it will be safe to load it in 1.0.1, but not in 1.1.0).
  • Undocumented APIs, features marked EXPERIMENTAL or DEPRECATED, and anything inpyro.contrib may change at any time (though we aim for stability).
  • All deprecated features throw a FutureWarning and specify possible work-arounds. Features marked as deprecated will not be maintained, and are likely to be removed in a future release.
  • If you want more stability for a particular feature, contribute a unit test.

New features

  • pyro.infer.Predictive is a new utility for serving models, supporting jit tracing and serialization.
  • pyro.distributions.transforms has many new transforms, and includes helper functions to easily create a variety of normalizing flows. The transforms library has also been reorganized.
  • pyro.contrib.timeseries is an experimental new module with fast Gaussian Process inference for univariate and multivariate time series and state space models.
  • pyro.nn.PyroModule is an experimental new interface that adds Pyro effects to an nn.Module. PyroModule is already used internally by AutoGuide, EasyGuide pyro.contrib.gp, pyro.contrib.timeseries, and elsewhere.
  • FoldedDistribution is a new distribution factory, essentially equivalent to TransformedDistribution(-, AbsTransform()) but providing a .log_prob() method.
  • A new tutorial illustrates the usage of pyro.contrib.oed in the context of adaptive election polling.

Breaking changes

  • Autoguides have slightly changed interfaces:
    • AutoGuide and EasyGuide are now nn.Modules and can be serialized separately from the param store. This enables serving via torch.jit.trace_module.
    • The Auto*Normal family of autoguides now have init_scale arguments, and init_loc_fn has better support. Autoguides no longer support initialization by writing directly to the param store.
  • Many transforms have been renamed to enforce a consistent interface, such as the renaming of InverseAutoregressiveFlow to AffineAutoregressive.
  • pyro.generic has been moved to a separate project pyroapi.
  • poutine.do has slightly changed semantics to follow Single World Intervention Graph semantics.
  • pyro.contrib.glmm has been moved to pyro.contrib.oed.glmm and will eventually be replaced by BRMP.
  • Existing DeprecationWarnings have been promoted to FutureWarnings.

Deprecated features

  • pyro.random_module: The pyro.random_module primitive has been deprecated in favor of PyroModule which can be used to create Bayesian modules from torch.nn.Module instances.
  • SVI.run: The SVI.run method is deprecated and users are encouraged to use the .step method directly to run inference. For drawing samples from the posterior distribution, we recommend using the Predictive utility class, or directly by using the trace and replay effect handlers.
  • TracePredictive: The TracePredictive class is deprecated in favor of Predictive, that can be used to gather samples from the posterior and predictive distributions in SVI and MCMC.
  • mcmc.predictive: This utility function has been absorbed into the more general Predictive class.