mode – controlling compilation#

Guide#

The mode parameter to aesara.function() controls how the inputs-to-outputs graph is transformed into a callable object.

Aesara defines the following modes by name:

  • 'FAST_COMPILE': Apply just a few graph rewrites and only use Python implementations.

  • 'FAST_RUN': Apply all rewrites, and use C implementations where possible.

  • 'DebugMode': A mode for debugging. See DebugMode for details.

  • 'NanGuardMode: Nan detector

  • 'DEBUG_MODE': Deprecated. Use the string DebugMode.

The default mode is typically FAST_RUN, but it can be controlled via the configuration variable config.mode, which can be overridden by passing the keyword argument to aesara.function().

Todo

For a finer level of control over which rewrites are applied, and whether C or Python implementations are used, read…. what exactly?

Reference#

aesara.compile.mode.FAST_COMPILE[source]#
aesara.compile.mode.FAST_RUN[source]#
class aesara.compile.mode.Mode(object)[source]#

Compilation is controlled by two attributes: the optimizer controls how an expression graph will be transformed; the linker controls how the rewritten expression graph will be evaluated.

optimizer[source]#

An optimizer instance.

linker[source]#

A linker instance.

including(*tags)[source]#

Return a new Mode instance like this one, but with its optimizer modified by including the given tags.

excluding(*tags)[source]#

Return a new Mode instance like this one, but with an optimizer modified by excluding the given tags.

requiring(*tags)[source]#

Return a new Mode instance like this one, but with an optimizer modified by requiring the given tags.