adding docstring for symmetric kern

This commit is contained in:
James Hensman 2013-11-12 12:06:38 +00:00
parent b37dd01299
commit e7c7ae8ff4
2 changed files with 17 additions and 5 deletions

View file

@ -450,6 +450,18 @@ def prod(k1,k2,tensor=False):
def symmetric(k):
"""
Construct a symmetric kernel from an existing kernel
The symmetric kernel works by adding two GP functions together, and computing the overall covariance.
Let f ~ GP(x | 0, k(x, x')). Now let g = f(x) + f(-x).
It's easy to see that g is a symmetric function: g(x) = g(-x).
by construction, g, is a gaussian Process with mean 0 and covariance
k(x, x') + k(-x, x') + k(x, -x') + k(-x, -x')
This constructor builds a covariance function of this form from the initial kernel
"""
k_ = k.copy()
k_.parts = [symmetric.Symmetric(p) for p in k.parts]

View file

@ -133,12 +133,12 @@ class Prod(Kernpart):
self.k1.K(X[:,self.slice1],X2[:,self.slice1],self._K1)
self.k2.K(X[:,self.slice2],X2[:,self.slice2],self._K2)
def __getstate__(self):
return [self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params]
#def __getstate__(self):
#return [self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params]
def __setstate__(self, state):
self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params = state
self._X, self._X2, self._params = np.empty(shape=(3,1))
#def __setstate__(self, state):
#self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params = state
#self._X, self._X2, self._params = np.empty(shape=(3,1))