Aesara is a fast, hackable, meta-tensor library in Python
Aesara is a Python library that allows you to define, optimize/rewrite, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It is composed of different parts:
Symbolic representation of mathematical operations on arrays
Speed and stability optimization
Efficient symbolic differentiation
Powerful rewrite system to programmatically modify your models
Extendable backends Aesara currently compiles to C, Jax and Numba.
Aesara adheres to the following design principles:
Familiar: Aesara follows the NumPy API and can act as a drop-in replacement.
Modular: Aesara’s graph, rewrites, backends can be easily be extended independently.
Hackable: Easily add rewrites, mathematical operators and backends in pure python.
Composable: Aesara’s compiled functions are compatible with the Numba & JAX ecosystems.
We also make a strong commitment to code quality and scalability.
Aesara is based on Theano, which has been powering large-scale computationally intensive scientific investigations since 2007.
You can install Aesara with
conda or with
pip. To get the bleeding edge version you can install
conda install -c conda-forge aesara
pip install aesara
pip install aesara-nightly
To use the Numba or JAX backend you will need to install that library in addition to Aesara. Please refer to Numba’s installation instructions and JAX’s installation instructions respectively.
The following projects illustrate Aesara’s unique capabilities:
While these projects are related to probabilistic modelling, Aesara is much more general and can be used to improve any machine learning project.
Visit aesara-users to discuss the general use of Aesara with developers and other users
We use GitHub issues to keep track of issues and GitHub Discussions to discuss feature additions and design changes