mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-08 11:32:39 +02:00
core updates
This commit is contained in:
parent
d305495693
commit
401540cbf5
4 changed files with 10 additions and 22 deletions
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ class Parameterized(Parameterizable, Pickleable):
|
||||||
# Metaclass for parameters changed after init.
|
# Metaclass for parameters changed after init.
|
||||||
# This makes sure, that parameters changed will always be called after __init__
|
# This makes sure, that parameters changed will always be called after __init__
|
||||||
# **Never** call parameters_changed() yourself
|
# **Never** call parameters_changed() yourself
|
||||||
__metaclass__ = ParametersChangedMeta
|
__metaclass__ = ParametersChangedMeta
|
||||||
#===========================================================================
|
#===========================================================================
|
||||||
def __init__(self, name=None, parameters=[], *a, **kw):
|
def __init__(self, name=None, parameters=[], *a, **kw):
|
||||||
super(Parameterized, self).__init__(name=name, *a, **kw)
|
super(Parameterized, self).__init__(name=name, *a, **kw)
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue