core updates

This commit is contained in:
Max Zwiessele 2014-03-24 11:22:31 +00:00
parent d305495693
commit 401540cbf5
4 changed files with 10 additions and 22 deletions

View file

@ -1,7 +1,7 @@
# Copyright (c) 2012, GPy authors (see AUTHORS.txt). # Copyright (c) 2012, GPy authors (see AUTHORS.txt).
# Licensed under the BSD 3-clause license (see LICENSE.txt) # Licensed under the BSD 3-clause license (see LICENSE.txt)
__updated__ = '2014-03-21' __updated__ = '2014-03-24'
import numpy as np import numpy as np
from parameter_core import Observable from parameter_core import Observable
@ -38,24 +38,9 @@ class ObsAr(np.ndarray, Observable):
np.ndarray.__setstate__(self, state[0]) np.ndarray.__setstate__(self, state[0])
Observable._setstate(self, state[1]) Observable._setstate(self, state[1])
def _s_not_empty(self, s):
# this checks whether there is something picked by this slice.
return True
# TODO: disarmed, for performance increase,
if not isinstance(s, (list,tuple,np.ndarray)):
return True
if isinstance(s, (list,tuple)):
return len(s)!=0
if isinstance(s, np.ndarray):
if s.dtype is bool:
return np.all(s)
else:
return s.size != 0
def __setitem__(self, s, val): def __setitem__(self, s, val):
if self._s_not_empty(s): super(ObsAr, self).__setitem__(s, val)
super(ObsAr, self).__setitem__(s, val) self.notify_observers()
self.notify_observers()
def __getslice__(self, start, stop): def __getslice__(self, start, stop):
return self.__getitem__(slice(start, stop)) return self.__getitem__(slice(start, stop))

View file

@ -183,7 +183,7 @@ class ParameterIndexOperationsView(object):
def remove(self, prop, indices): def remove(self, prop, indices):
removed = self._param_index_ops.remove(prop, indices+self._offset) removed = self._param_index_ops.remove(prop, numpy.array(indices)+self._offset)
if removed.size > 0: if removed.size > 0:
return removed - self._size + 1 return removed - self._size + 1
return removed return removed

View file

@ -26,7 +26,10 @@ class BayesianGPLVM(SparseGP):
Z=None, kernel=None, inference_method=None, likelihood=None, name='bayesian gplvm', **kwargs): Z=None, kernel=None, inference_method=None, likelihood=None, name='bayesian gplvm', **kwargs):
if X == None: if X == None:
from ..util.initialization import initialize_latent from ..util.initialization import initialize_latent
X = initialize_latent(init, input_dim, Y) X, fracs = initialize_latent(init, input_dim, Y)
else:
fracs = np.ones(input_dim)
self.init = init self.init = init
if X_variance is None: if X_variance is None:
@ -38,7 +41,7 @@ class BayesianGPLVM(SparseGP):
assert Z.shape[1] == X.shape[1] assert Z.shape[1] == X.shape[1]
if kernel is None: if kernel is None:
kernel = kern.RBF(input_dim) # + kern.white(input_dim) kernel = kern.RBF(input_dim, lengthscale=fracs, ARD=True) # + kern.white(input_dim)
if likelihood is None: if likelihood is None:
likelihood = Gaussian() likelihood = Gaussian()