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 optimizations and only use Python implementations.
  • 'FAST_RUN': Apply all optimizations, 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 optimizations 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 optimized 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 an 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.