gpflow.monitor#
Provides basic functionality to monitor optimisation runs
Classes#
gpflow.monitor.ExecuteCallback#
- class gpflow.monitor.ExecuteCallback(callback)[source]#
Bases:
MonitorTask
Executes a callback as task
- Parameters:
callback (
Callable
[...
,None
]) –
gpflow.monitor.ImageToTensorBoard#
- class gpflow.monitor.ImageToTensorBoard(log_dir, plotting_function, name=None, *, fig_kw=None, subplots_kw=None)[source]#
Bases:
ToTensorBoard
gpflow.monitor.ModelToTensorBoard#
- class gpflow.monitor.ModelToTensorBoard(log_dir, model, *, max_size=3, keywords_to_monitor=['kernel', 'likelihood'], left_strip_character='.')[source]#
Bases:
ToTensorBoard
Monitoring task that creates a sensible TensorBoard for a model.
Monitors all the model’s parameters for which their name matches with keywords_to_monitor. By default, “kernel” and “likelihood” are elements of keywords_to_monitor.
Example:
keyword = "kernel", parameter = "kernel.lengthscale" => match keyword = "variational", parameter = "kernel.lengthscale" => no match
- Parameters:
log_dir (
str
) –model (
BayesianModel
) –max_size (
int
) –keywords_to_monitor (
List
[str
]) –left_strip_character (
str
) –
gpflow.monitor.Monitor#
- class gpflow.monitor.Monitor(*task_groups)[source]#
Bases:
object
Accepts any number of of MonitorTaskGroup instances, and runs them according to their specified periodicity.
Example use-case:
# Create some monitor tasks log_dir = "logs" model_task = ModelToTensorBoard(log_dir, model) image_task = ImageToTensorBoard(log_dir, plot_prediction, "image_samples") lml_task = ScalarToTensorBoard(log_dir, lambda: model.log_marginal_likelihood(), "lml") # Plotting tasks can be quite slow, so we want to run them less frequently. # We group them in a `MonitorTaskGroup` and set the period to 5. slow_tasks = MonitorTaskGroup(image_task, period=5) # The other tasks are fast. We run them at each iteration of the optimisation. fast_tasks = MonitorTaskGroup([model_task, lml_task], period=1) # We pass both groups to the `Monitor` monitor = Monitor(fast_tasks, slow_tasks)
- Parameters:
task_groups (
MonitorTaskGroup
) –
gpflow.monitor.MonitorTask#
gpflow.monitor.MonitorTaskGroup#
- class gpflow.monitor.MonitorTaskGroup(task_or_tasks, period=1)[source]#
Bases:
object
Class for grouping MonitorTask instances. A group defines all the tasks that are run at the same frequency, given by period.
A MonitorTaskGroup can exist of a single instance or a list of MonitorTask instances.
- Parameters:
task_or_tasks (
Union
[Collection
[MonitorTask
],MonitorTask
]) –period (
int
) –
gpflow.monitor.ScalarToTensorBoard#
- class gpflow.monitor.ScalarToTensorBoard(log_dir, callback, name)[source]#
Bases:
ToTensorBoard
Stores the return value of a callback in a TensorBoard.
- Parameters:
log_dir (
str
) –callback (
Callable
[[],float
]) –name (
str
) –
gpflow.monitor.ToTensorBoard#
- class gpflow.monitor.ToTensorBoard(log_dir)[source]#
Bases:
MonitorTask
- Parameters:
log_dir (
str
) –