New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Edward 2.0 #825

wants to merge 27 commits into
base: master


None yet
2 participants

dustinvtran commented Jan 16, 2018

This PR is a redesign of Edward for version 2.0. It adds/changes the following:

  1. Core function for manipulating continuations: call_with_manipulate.
  2. Inference algorithms are now pure functions (up to your usual TF side effects).

Details and features of design forthcoming.

@csuter, @davmre, @derifatives, @jvdillon, @matthewdhoffman, @mattjj

Breaking changes to API

  • Model and variational programs are callables.
  • Inference classes only have a functional equivalent and are Tensor-in Tensor-out.
  • All edward.criticisms is removed.
  • All edward.util is removed.
  • All custom Edward random variables are removed: DirichletProcess, Empirical, ParamMixture, PointMass.
  • rv.value() is renamed to rv.value.


  • Break up into smaller, self-contained PRs.
  • Refactor all inferences (excluding Monte Carlo) to support traces.
  • Refactor Monte Carlo (waiting on @jvdillon for go/hmc-new-interface)
  • Refactor inferences/conjugacy/ (waiting on @matthewdhoffman, @mattjj)
  • Add programmable docstrings.
  • Update criticisms module.
  • Update util module.
  • Update tests/. (only tests/inferences/ left)
  • Update examples/, docs/, notebooks/.

This comment has been minimized.

tscholak commented Feb 1, 2018

I welcome the changes to a more functional design!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment