From ffd09c7820f82d6bc8f3b46ab4b59ee34952b7e6 Mon Sep 17 00:00:00 2001 From: Max Zwiessele Date: Thu, 13 Feb 2014 21:59:08 +0000 Subject: [PATCH] =?UTF-8?q?checkgrad=20=20=20=20(=E2=95=AF=C2=B0=E2=96=A1?= =?UTF-8?q?=C2=B0=EF=BC=89=E2=95=AF=EF=B8=B5=20=E2=94=BB=E2=94=81=E2=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GPy/core/model.py | 4 ++-- GPy/core/parameterization/array_core.py | 2 +- GPy/core/parameterization/param.py | 7 ++++++- GPy/examples/regression.py | 1 - 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/GPy/core/model.py b/GPy/core/model.py index e7c6c7ec..6bc3edb9 100644 --- a/GPy/core/model.py +++ b/GPy/core/model.py @@ -455,8 +455,8 @@ class Model(Parameterized): if self._has_fixes(): indices = np.r_[:self.size] which = (param_index[:,None]==indices[self._fixes_][None,:]).nonzero() - transformed_index = (indices-(~self._fixes_).cumsum())[which[1]] - param_index = indices[which[0]] + param_index = param_index[which[0]] + transformed_index = (indices-(~self._fixes_).cumsum())[param_index] print param_index, transformed_index else: transformed_index = param_index diff --git a/GPy/core/parameterization/array_core.py b/GPy/core/parameterization/array_core.py index 975b78f4..78b9e8f2 100644 --- a/GPy/core/parameterization/array_core.py +++ b/GPy/core/parameterization/array_core.py @@ -28,8 +28,8 @@ class ObservableArray(np.ndarray, Observable): """ __array_priority__ = -1 # Never give back ObservableArray def __new__(cls, input_array): - cls.__name__ = "ObservableArray\n " obj = np.atleast_1d(input_array).view(cls) + cls.__name__ = "ObservableArray\n " obj._observers_ = {} return obj def __array_finalize__(self, obj): diff --git a/GPy/core/parameterization/param.py b/GPy/core/parameterization/param.py index 940cd1a0..97fcfd32 100644 --- a/GPy/core/parameterization/param.py +++ b/GPy/core/parameterization/param.py @@ -43,6 +43,7 @@ class Param(ObservableArray, Constrainable, Gradcheckable, Indexable, Parameteri _parameters_ = [] def __new__(cls, name, input_array, default_constraint=None): obj = numpy.atleast_1d(super(Param, cls).__new__(cls, input_array=input_array)) + cls.__name__ = "Param" obj._current_slice_ = (slice(obj.shape[0]),) obj._realshape_ = obj.shape obj._realsize_ = obj.size @@ -57,7 +58,7 @@ class Param(ObservableArray, Constrainable, Gradcheckable, Indexable, Parameteri def __init__(self, name, input_array, default_constraint=None): super(Param, self).__init__(name=name, default_constraint=default_constraint) - + def __array_finalize__(self, obj): # see InfoArray.__array_finalize__ for comments if obj is None: return @@ -75,6 +76,7 @@ class Param(ObservableArray, Constrainable, Gradcheckable, Indexable, Parameteri self._original_ = getattr(obj, '_original_', None) self._name = getattr(obj, 'name', None) self.gradient = getattr(obj, 'gradient', None) + self.constraints = getattr(obj, 'constraints', None) def __array_wrap__(self, out_arr, context=None): return out_arr.view(numpy.ndarray) @@ -391,6 +393,9 @@ class Param(ObservableArray, Constrainable, Gradcheckable, Indexable, Parameteri slice_index = self._current_slice_ if isinstance(slice_index, (tuple, list)): clean_curr_slice = [s for s in slice_index if numpy.any(s != Ellipsis)] + for i in range(self._realndim_-len(clean_curr_slice)): + i+=len(clean_curr_slice) + clean_curr_slice += range(self._realshape_[i]) if (all(isinstance(n, (numpy.ndarray, list, tuple)) for n in clean_curr_slice) and len(set(map(len, clean_curr_slice))) <= 1): return numpy.fromiter(itertools.izip(*clean_curr_slice), diff --git a/GPy/examples/regression.py b/GPy/examples/regression.py index f8d3d5a9..c073369f 100644 --- a/GPy/examples/regression.py +++ b/GPy/examples/regression.py @@ -473,7 +473,6 @@ def uncertain_inputs_sparse_regression(max_iters=200, optimize=True, plot=True): Z = np.random.uniform(-3., 3., (7, 1)) k = GPy.kern.rbf(1) - import ipdb;ipdb.set_trace() # create simple GP Model - no input uncertainty on this one m = GPy.models.SparseGPRegression(X, Y, kernel=GPy.kern.rbf(1), Z=Z)