# Source code for gpytorch.beta_features

#!/usr/bin/env python3

import warnings

from .settings import _feature_flag, _value_context

class _moved_beta_feature(object):
def __init__(self, new_cls, orig_name=None):
self.new_cls = new_cls
self.orig_name = orig_name if orig_name is not None else "gpytorch.settings.{}".format(new_cls.__name__)

def __call__(self, *args, **kwargs):
warnings.warn(
"{} has moved to gpytorch.settings.{}.".format(self.orig_name, self.new_cls.__name__),
DeprecationWarning,
)
return self.new_cls(*args, **kwargs)

def __getattr__(self, name):
return getattr(self.new_cls, name)

[docs]class checkpoint_kernel(_value_context): """ Should the kernel be computed in chunks with checkpointing or not? (Default, no) If split_size = 0: The kernel is computed explicitly. During training, the kernel matrix is kept in memory for the backward pass. This is the fastest option but the most memory intensive. If split_size > 0: The kernel is never fully computed or stored. Instead, the kernel is only accessed through matrix multiplication. The matrix multiplication is computed in segments chunks. This is slower, but requires significantly less memory. Default: 0 """ _global_value = 0
[docs]class default_preconditioner(_feature_flag): """ Add a diagonal correction to scalable inducing point methods """ pass
__all__ = ["checkpoint_kernel", "default_preconditioner"]