From 3b2d16a0e2734bd45aa3992f26a3a16d9bf2409a Mon Sep 17 00:00:00 2001 From: James Hensman Date: Thu, 16 Oct 2014 14:02:02 +0100 Subject: [PATCH] docstrings --- GPy/kern/_src/stationary.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/GPy/kern/_src/stationary.py b/GPy/kern/_src/stationary.py index 1685e7c7..1558f0a5 100644 --- a/GPy/kern/_src/stationary.py +++ b/GPy/kern/_src/stationary.py @@ -8,9 +8,9 @@ from ...core.parameterization.transformations import Logexp from ...util.linalg import tdot from ... import util import numpy as np -from scipy import integrate -from ...util.caching import Cache_this +from scipy import integrate, weave from ...util.config import config # for assesing whether to use weave +from ...util.caching import Cache_this class Stationary(Kern): """ @@ -132,10 +132,22 @@ class Stationary(Kern): return ret def update_gradients_diag(self, dL_dKdiag, X): + """ + Given the derivative of the objective with respect to the diagonal of + the covariance matrix, compute the derivative wrt the parameters of + this kernel and stor in the .gradient field. + + See also update_gradients_full + """ self.variance.gradient = np.sum(dL_dKdiag) self.lengthscale.gradient = 0. def update_gradients_full(self, dL_dK, X, X2=None): + """ + Given the derivative of the objective wrt the covariance matrix + (dL_dK), compute the gradient wrt the parameters of this kernel, + and store in the parameters object as e.g. self.variance.gradient + """ self.variance.gradient = np.einsum('ij,ij,i', self.K(X, X2), dL_dK, 1./self.variance) #now the lengthscale gradient(s) @@ -173,6 +185,7 @@ class Stationary(Kern): return 1./np.where(dist != 0., dist, np.inf) def weave_lengthscale_grads(self, tmp, X, X2): + """Use scipy.weave to compute derivatives wrt the lengthscales""" N,M = tmp.shape Q = X.shape[1] if hasattr(X, 'values'):X = X.values @@ -190,7 +203,6 @@ class Stationary(Kern): grads[q] = gradq; } """ - from scipy import weave weave.inline(code, ['tmp', 'X', 'X2', 'grads', 'N', 'M', 'Q'], type_converters=weave.converters.blitz, support_code="#include ") return -grads/self.lengthscale**3