Skip to content

Introduce "Learner not ready" error

Some adaptive algorithms may be implemented such that they are not ready to request new data until more data arrives. While this reduces the suitability of these algorithms to parallelization, there is no reason to prohibit it.

We could handle this as follows:

  • Introduce an InsufficientData error (name is tentative) that could be a subclass of StopIteration if we view learners as iterators (see #45).
  • Teach the runners and BalancingLearner to catch this error and only resume querying the learner after they supply additional data.

That way we could even write a trivial wrapper learner that works with any adaptive algorithm and blocks on every step.