Tutorial AverageLearner
#
Note
Because this documentation consists of static html, the live_plot
and live_info
widget is not live.
Download the notebook in order to see the real behaviour. [1]
Show code cell content
import adaptive
adaptive.notebook_extension()
The next type of learner averages a function until the uncertainty in the average meets some condition.
This is useful for sampling a random variable. The function passed to the learner must formally take a single parameter, which should be used like a โseedโ for the (pseudo-) random variable (although in the current implementation the seed parameter can be ignored by the function).
def g(n):
import random
from time import sleep
sleep(random.random() / 1000)
# Properly save and restore the RNG state
state = random.getstate()
random.seed(n)
val = random.gauss(0.5, 1)
random.setstate(state)
return val
learner = adaptive.AverageLearner(g, atol=None, rtol=0.01)
# `loss < 1.0` means that we reached the `rtol` or `atol`
runner = adaptive.Runner(learner, loss_goal=1.0)
Show code cell content
await runner.task # This is not needed in a notebook environment!
runner.live_info()
runner.live_plot(update_interval=0.1)