Skip to content

Striving towards backwards compatibility with the Theano -> Aesara transition

License

Notifications You must be signed in to change notification settings

exoplanet-dev/aesara-theano-fallback

Repository files navigation

aesara-theano-fallback

Striving towards backwards compatibility as Theano is replaced by Aesara by the PyMC3 project. The idea is to provide a nearly drop in replacement for importing aesara that will fall back onto theano when aesara is not installed. This was specifically designed to support the exoplanet and starry projects so it might not support all of the features that you need. If you find something that isn't supported, please submit a pull request!

Installaion

This library can be installed using pip:

python -m pip install aesara-theano-fallback

Usage

The syntax is designed to mostly follow aesara, so things like the following will often work:

import aesara_theano_fallback.tensor as aet

For top-level access, use

from aesara_theano_fallback import aesara

One place where the syntax has changed significantly between Theano and Aesara is the theano.gof module was re-named to aesara.graph and the contents were moved around a little bit. For exoplanet and starry, we define a few custom Ops and you can use this library to do that as follows:

from aesara_theano_fallback.graph import basic, op

class MyPythonOp(op.Op):
    def make_node(self, *args):
        # ...
        return basic.Apply(self, in_args, out_args)

class MyCOp(op.ExternalCOp):
    func_file = "./cpp_impl.cc"
    func_name = "APPLY_SPECIFIC(my_op_name)"
    # ...

About

Striving towards backwards compatibility with the Theano -> Aesara transition

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages