Runner extras¶
Stopping Criteria¶
Runners allow you to specify the stopping criterion by providing
a goal
as a function that takes the learner and returns a boolean: False
for “continue running” and True
for “stop”. This gives you a lot of flexibility
for defining your own stopping conditions, however we also provide some common
stopping conditions as a convenience.
-
adaptive.runner.
stop_after
(*, seconds=0, minutes=0, hours=0)[source]¶ Stop a runner after a specified time.
For example, to specify a runner that should stop after 5 minutes, one could do the following:
>>> runner = Runner(learner, goal=stop_after(minutes=5))
To stop a runner after 2 hours, 10 minutes and 3 seconds, one could do the following:
>>> runner = Runner(learner, goal=stop_after(hours=2, minutes=10, seconds=3))
- Parameters
minutes, hours (seconds,) – If more than one is specified, then they are added together
- Returns
goal – Can be used as the
goal
parameter when constructing aRunner
.- Return type
callable
Notes
The duration specified is only a lower bound on the time that the runner will run for, because the runner only checks its goal when it adds points to its learner
Simple executor¶
-
adaptive.runner.
simple
(learner, goal)[source]¶ Run the learner until the goal is reached.
Requests a single point from the learner, evaluates the function to be learned, and adds the point to the learner, until the goal is reached, blocking the current thread.
This function is useful for extracting error messages, as the learner’s function is evaluated in the same thread, meaning that exceptions can simple be caught an inspected.
- Parameters
learner (BaseLearner` instance) –
goal (callable) – The end condition for the calculation. This function must take the learner as its sole argument, and return True if we should stop.