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.

Overview of Aesara

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.

Install Aesara#

You can install Aesara with conda or with pip. To get the bleeding edge version you can install aesara-nightly.

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.