Introduce 'BalancingLearner.from_combos' classmethod
Inspired on xyzpy
(see this issue) I've added a classmethod
called from_combos
that will make the BalancingLearner
easier to work with.
I write something similar (although it was less general) nearly every day.
With it, you can do something beautiful like:
import adaptive
from scipy.special import eval_jacobi
import numpy as np
adaptive.notebook_extension()
def jacobi(x, n, alpha, beta):
return eval_jacobi(n, alpha, beta, x)
combos = {
'n': [1, 2, 4, 8, 16],
'alpha': np.linspace(0, 2, 3),
'beta': np.linspace(0, 1, 5),
}
learner = adaptive.BalancingLearner.from_combos(
jacobi, adaptive.Learner1D, dict(bounds=(0, 1)), combos)
runner = adaptive.Runner(learner, goal=lambda l: l.loss() < 0.01)
runner.live_info()
and plot it with:
holomap = learner.plot(cdims=adaptive.utils.named_product(**combos))
holomap.overlay('beta').grid()
Edited by Bas Nijholt