Skip to content

logo

Gitter Discord Twitter

Welcome to the Aesara Project!

The Aesara Project is a collection of Python projects—built on a fork of Theano named Aesara—that aid in the construction and use of domain-specific compilers for tensor-related computations.

Currently, the Aesara Project primarily serves the probabilistic modeling community through its Probabilistic Programming Language-generating capabilities and model-specific optimizations; however, its scope is not limited to just that. See the discussion here for an explanation of the Aesara Project's goals and history.

The Aesara projects

  • Aesara is a hackable "meta" tensor library that enables the manipulation of mathematical expressions involving multidimensional arrays;
  • AePPL provides an intermediate representation for Probabilistic Programming Languages, and automatically derives log-densities for probabilistic models;
  • AeHMC provides a symbolic implementation of the HMC and NUTS samplers;
  • AeMCMC automatically builds custom samplers for probabilistic models and performs model-specific optimizations such as automatic Rao-Blackwellization, Bayesian conjugation, and marginalization.

What distinguishes Aesara from other tensor libraries?

In the context of statistical modeling, Aesara allows you to focus only on the model. It provides a single, easily customizable form of a model that can be used to encode all the information needed to produce numerical optimizers and samplers.

In other words, users can build a symbolic graph that represents the mathematical operations performed by the model. This graph can be inspected and modified at runtime—thanks to a fully featured and extensible rewrite system—and all without ever leaving Python. Graphs can then be transpiled to a number of supported target languages (e.g. C, Numba, JAX).

Aesara is modular by design and it is straightforward to add new mathematical operators, new rewrite rules (e.g. numerical stabilizations, optimizations, etc.), and even new target languages.

Aesara opens new possibilities in Machine Learning, exemplified by the AePPL and AeMCMC libraries.

Contact us!

Chat with us via the Gitter link above. It's also compatible with Matrix!

Pinned

  1. aesara aesara Public

    Aesara is a Python library for defining, optimizing, and efficiently evaluating mathematical expressions involving multi-dimensional arrays.

    Python 1.2k 156

  2. aeppl aeppl Public

    Tools for an Aesara-based PPL.

    Python 62 22

  3. aehmc aehmc Public

    An HMC/NUTS implementation in Aesara

    Python 33 6

  4. aemcmc aemcmc Public

    AeMCMC is a Python library that automates the construction of samplers for Aesara graphs representing statistical models.

    Python 39 11

Repositories

Showing 7 of 7 repositories

Top languages

Loading…

Most used topics

Loading…