[docs]classScaledRBFKernel(kernels.ScaleKernel):""" The recommended starting place for a kernel. """
[docs]def__init__(self,batch_shape:Union[tuple[int,...],torch.Size]=torch.Size(),ard_num_dims:Optional[int]=None)->None:""" Initialise self. :param batch_shape: The batch shape. Defaults to no batching. :param ard_num_dims: Set this if you want a separate lengthscale for each input dimension. Defaults to none. """super().__init__(kernels.RBFKernel(ard_num_dims=ard_num_dims,batch_shape=batch_shape),batch_shape=batch_shape)
[docs]classPeriodicRBFKernel(kernels.ScaleKernel):""" An RBF kernel with a periodic element. """
[docs]classTimeSeriesKernel(kernels.AdditiveKernel):""" A kernel suited to time series. """
[docs]def__init__(self,time_dimension:int=0)->None:""" Initialise self. :param time_dimension: The dimension in the data that corresponds to time. """scaled_rbf_t=kernels.ScaleKernel(kernels.RBFKernel(active_dims=[time_dimension]))scaled_periodic_rbf=kernels.ScaleKernel(kernels.PeriodicKernel(active_dims=[time_dimension])*kernels.RBFKernel(active_dims=[time_dimension]))scaled_constrained_rbf=kernels.ScaleKernel(kernels.RBFKernel(active_dims=[time_dimension]),lengthscale_constraint=constraints.Interval(1,14))scaled_linear_t=kernels.ScaleKernel(kernels.LinearKernel(active_dims=[time_dimension]))kernel_t=scaled_rbf_t+scaled_periodic_rbf+scaled_constrained_rbfsuper().__init__(scaled_linear_t,kernel_t)