Bayesian deep learning before it was cool
Edward fused probabilistic programming into TensorFlow back when that meant wiring variational inference by hand.

What it does Edward is a Python library for probabilistic modeling, inference, and model criticism built on TensorFlow. It lets you specify directed graphical models, neural networks via Keras or tf.layers, implicit generative models, and Bayesian nonparametrics, then run variational inference, MCMC, or even GAN-style training through a common interface.
The interesting bit The project treats “criticism” as a first-class citizen alongside modeling and inference — it includes posterior predictive checks and point-based evaluations, not just parameter estimation. That’s unusual: most frameworks stop at “here’s your MAP estimate, good luck.”
Key highlights
- Variational inference, Gibbs sampling, Hamiltonian Monte Carlo, and stochastic gradient Langevin dynamics in one toolkit
- Composable inference: EM, pseudo-marginal/ABC methods, message passing
- Leverages TensorFlow’s computational graphs, distributed training, and TensorBoard visualization
- Explicitly designed as a research testbed, not a locked-down production framework
Caveats
- Built on TensorFlow 1.x-era patterns (tf.layers, graph-based execution); the README doesn’t mention TF 2.x or eager execution compatibility
- Development appears quiet; the Travis CI badge and forum links suggest maintenance-mode status
Verdict Worth studying if you’re implementing custom inference algorithms or teaching probabilistic ML. Skip it if you need a modern, actively maintained probabilistic framework — Pyro, NumPyro, or TensorFlow Probability have inherited this space.