mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-10 12:32:40 +02:00
Fixed parameter bugs
This commit is contained in:
parent
648609c3b1
commit
c28f11f291
2 changed files with 10 additions and 6 deletions
|
|
@ -449,7 +449,9 @@ class Parameterized(Constrainable, Pickleable, Observable):
|
||||||
# if removing constraints before adding new is not wanted, just delete the above line!
|
# if removing constraints before adding new is not wanted, just delete the above line!
|
||||||
self.constraints.add(transform, rav_i)
|
self.constraints.add(transform, rav_i)
|
||||||
param = self._get_original(param)
|
param = self._get_original(param)
|
||||||
param._set_params(transform.initialize(param._get_params()), update=False)
|
#FIXME: Max, is this the right thing to do to handle fixed?
|
||||||
|
if not (transform == __fixed__):
|
||||||
|
param._set_params(transform.initialize(param._get_params()), update=False)
|
||||||
if warning and any(reconstrained):
|
if warning and any(reconstrained):
|
||||||
# if you want to print the whole params object, which was reconstrained use:
|
# if you want to print the whole params object, which was reconstrained use:
|
||||||
# m = str(param[self._backtranslate_index(param, reconstrained)])
|
# m = str(param[self._backtranslate_index(param, reconstrained)])
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from domains import _POSITIVE,_NEGATIVE, _BOUNDED
|
from domains import _POSITIVE,_NEGATIVE, _BOUNDED
|
||||||
import sys
|
import sys
|
||||||
import weakref
|
import weakref
|
||||||
_lim_val = -np.log(sys.float_info.epsilon)
|
_lim_val = -np.log(sys.float_info.epsilon)
|
||||||
|
|
||||||
class Transformation(object):
|
class Transformation(object):
|
||||||
domain = None
|
domain = None
|
||||||
|
|
@ -94,7 +94,7 @@ class LogexpClipped(Logexp):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '+ve_c'
|
return '+ve_c'
|
||||||
|
|
||||||
|
|
||||||
class Exponent(Transformation):
|
class Exponent(Transformation):
|
||||||
# TODO: can't allow this to go to zero, need to set a lower bound. Similar with negative Exponent below. See old MATLAB code.
|
# TODO: can't allow this to go to zero, need to set a lower bound. Similar with negative Exponent below. See old MATLAB code.
|
||||||
domain = _POSITIVE
|
domain = _POSITIVE
|
||||||
|
|
@ -162,9 +162,11 @@ class Logistic(Transformation):
|
||||||
def initialize(self, f):
|
def initialize(self, f):
|
||||||
if np.any(np.logical_or(f < self.lower, f > self.upper)):
|
if np.any(np.logical_or(f < self.lower, f > self.upper)):
|
||||||
print "Warning: changing parameters to satisfy constraints"
|
print "Warning: changing parameters to satisfy constraints"
|
||||||
return np.where(np.logical_or(f < self.lower, f > self.upper), self.f(f * 0.), f)
|
#return np.where(np.logical_or(f < self.lower, f > self.upper), self.f(f * 0.), f)
|
||||||
|
#FIXME: Max, zeros_like right?
|
||||||
|
return np.where(np.logical_or(f < self.lower, f > self.upper), self.f(np.zeros_like(f)), f)
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{},{}'.format(self.lower, self.upper)
|
return '{},{}'.format(self.lower, self.upper)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue