- class composer.Engine(state, logger, algorithm_passes=None)#
Coordinator for running algorithms and resolving ordering conflicts among them for composition.
algorithm_passes ([AlgorithmPass | Tuple[AlgorithmPass, int] | Sequence[AlgorithmPass | Tuple[AlgorithmPass, int]], optional) – Optional list of passes to change order in which algorithms are applied. These passes are merged with the default passes specified in
None, then no additional passes will be used.
Shutdown the engine.
As part of the shutdown procedure,
Callback.post_close()are invoked for each callback. Note that
Callback.post_close()is invoked only for callbacks that did not raise an exception during
- register_pass(algorithm_pass, index=- 1)#
Registers an algorithm pass with the Engine.
algorithm_pass (passes.AlgorithmPass) – A method that maps a list of algorithms to a list of algorithms.
index (int, optional) – The index to insert into the list of passes. If -1 (default), the pass will be insert to the end of the list.
Runs the sequence of algorithms and callbacks (see
Filters algorithms by calling each one’s
Algorithm.match()method, internally checks for conflicting algorithms, then runs each algorithm’s
Algorithm.apply()method to make in-place changes to the
The default order of execution for algorithms is determined by the provided list. However,
Enginemakes changes to this order internally to resolve ordering conflicts.
Tracesof the execution, a dictionary with keys formatted as
Blurpool/INIT), and values are an instance of
Callbacks are always run after algorithms and do not return a trace.
This method can be called with either the
Eventenum member values or a string of the event name.
>>> engine = Engine(state, logger) >>> engine.run_event(Event.BEFORE_LOSS) OrderedDict() >>> # calling with a string of the event name also works >>> engine.run_event('before_loss') OrderedDict()
Runs the marker for an event if the profiler is enabled.
This is primarily used to complete the dataloader marker at the end of the dataloader. In this scenario, the dataloader marker has started from Event.BEFORE_DATALOADER, but Event.AFTER_DATALOADER cannot be called as no batch was yielded from the dataloader.