Skip to content
  • 1.3.0
  • 91dde2c
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.3.0
  • 91dde2c
  • Compare
    Choose a tag to compare
    Search for a tag

@fritzo fritzo released this Mar 8, 2020 · 29 commits to dev since this release

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
Assets 2

@neerajprad neerajprad released this Jan 23, 2020 · 84 commits to dev since this release

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.
Assets 2

@fritzo fritzo released this Jan 17, 2020 · 90 commits to dev since this release

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.


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.
Assets 2

@fritzo fritzo released this Dec 7, 2019 · 125 commits to dev since this release

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
Assets 2

@fritzo fritzo released this Nov 16, 2019 · 154 commits to dev since this release

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.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.
  • 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.
  • The 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.
Assets 2

@neerajprad neerajprad released this Oct 24, 2019 · 220 commits to dev since this release

Patches 0.5.0 with the following bug fixes:

  • Removes f-string which is only supported in Python 3.6+, so that Python 3.5 is supported.
  • Fix incompatibility with recent tqdm releases which make multiple bars not work in the notebook environment (for MCMC with multiple chains).
Assets 2

@neerajprad neerajprad released this Oct 23, 2019 · 220 commits to dev since this release

New features

Code changes and bug fixes

  • Moved pyro.generic to a separate pyro-api package.
  • Minor changes to ensure compatibility with pyro-api, a generic modeling and inference API for dispatch to different Pyro backends.
  • Improve numerical stability of MixtureOfDiagonals distribution using logsumexp operation.
  • Improved U-Turn check condition in NUTS for better sampling efficiency.
  • Reorganized constraints and transforms module to match torch.distributions.
  • Fixed AutoGuide intitialization stragtegies, resolving a bug in init_to_median.
Assets 2

@neerajprad neerajprad released this Aug 19, 2019 · 254 commits to dev since this release

New Features:

  • *HMM.filter() methods for forecasting.
  • Support for Independent(Normal) observations in GaussianHMM.


  • Fix for HMC / NUTS to handle errors arising from numerical issues when computing Cholesky decomposition.
Assets 2

@neerajprad neerajprad released this Aug 10, 2019 · 261 commits to dev since this release

This release drops support for Python 2. Additionally, it includes a few fixes to enable Pyro to use the latest PyTorch release, version 1.2.

Some other additions / minor changes:

  • Add option for sequential predictions for MCMC predictive.
  • Move pyro.contrib.autoguide to the core Pyro repo.
  • Additional inference algorithms
    • SMCFilter for filtering via Sequential Monte Carlo
    • Stein Variational Gradient Descent (SVGD).
  • Add a GaussianHMM distribution for fast tuning of Gaussian state space models / Kalman filters
Assets 2

@neerajprad neerajprad released this Jul 16, 2019 · 293 commits to dev since this release

New features

  • A more flexible easyguide module. Refer to the tutorial for usage instructions.
  • Different initialization methods for autoguides.
  • More normalizing flows - Block Neural Autoregressive Flow, Sum of Squares, Sylvester Flow, DeepELUFlow, Householder Flow, RealNVP.
  • Support ReduceLROnPlateau scheduler.
  • New interface for MCMC inference:
    • Ability to specify a potential function directly instead of Pyro model in HMC/NUTS kernels.
    • MCMC.summary() method that provides site level summary and diagnostic information.
    • Utility function for predictive that replaces the TracePredictive class.
    • Add divergence information to MCMC.diagnostics().
  • A DiscreteHMM distribution for fast parallel training of discrete-state Hidden Markov Models with arbitrary observation distributions. See examples/ for example usage in a neural HMM.

Code changes and bug fixes

  • Addresses pickling issue with Pyro handlers that makes it possible to pickle a much larger class of models.
  • Multiple fixes for multiprocessing bugs with MCMC. With the new interface, the memory consumption is low thereby allowing for collecting many more samples.
  • Performance enhancements for models with many sample sites.
Assets 2
You can’t perform that action at this time.