model robustness greatly improved and avisualize adjustments for plot_latent

This commit is contained in:
Max Zwiessele 2013-06-07 17:11:45 +01:00
parent 73bed5be82
commit 5f1445bf04
3 changed files with 10 additions and 10 deletions

View file

@ -237,7 +237,7 @@ class Model(Parameterised):
try: try:
self._set_params_transformed(x) self._set_params_transformed(x)
self._fail_count = 0 self._fail_count = 0
except (LinAlgError, ZeroDivisionError) as e: except (LinAlgError, ZeroDivisionError, ValueError) as e:
if self._fail_count >= self._allowed_failures: if self._fail_count >= self._allowed_failures:
raise e raise e
self._fail_count += 1 self._fail_count += 1
@ -255,7 +255,7 @@ class Model(Parameterised):
try: try:
self._set_params_transformed(x) self._set_params_transformed(x)
self._fail_count = 0 self._fail_count = 0
except (LinAlgError, ZeroDivisionError) as e: except (LinAlgError, ZeroDivisionError, ValueError) as e:
if self._fail_count >= self._allowed_failures: if self._fail_count >= self._allowed_failures:
raise e raise e
self._fail_count += 1 self._fail_count += 1
@ -267,7 +267,7 @@ class Model(Parameterised):
self._set_params_transformed(x) self._set_params_transformed(x)
obj_f = -self.log_likelihood() - self.log_prior() obj_f = -self.log_likelihood() - self.log_prior()
self._fail_count = 0 self._fail_count = 0
except (LinAlgError, ZeroDivisionError) as e: except (LinAlgError, ZeroDivisionError, ValueError) as e:
if self._fail_count >= self._allowed_failures: if self._fail_count >= self._allowed_failures:
raise e raise e
self._fail_count += 1 self._fail_count += 1

View file

@ -2,7 +2,7 @@
# Licensed under the BSD 3-clause license (see LICENSE.txt) # Licensed under the BSD 3-clause license (see LICENSE.txt)
import numpy as np import numpy as np
from matplotlib import pyplot as plt from matplotlib import pyplot as plt, cm
import GPy import GPy
from GPy.core.transformations import logexp from GPy.core.transformations import logexp
@ -182,7 +182,7 @@ def _simulate_sincos(D1, D2, D3, N, num_inducing, Q, plot_sim=False):
sS = sS(x) sS = sS(x)
S1 = np.hstack([s1, sS]) S1 = np.hstack([s1, sS])
S2 = np.hstack([s2, sS]) S2 = np.hstack([s2, s3, sS])
S3 = np.hstack([s3, sS]) S3 = np.hstack([s3, sS])
Y1 = S1.dot(np.random.randn(S1.shape[1], D1)) Y1 = S1.dot(np.random.randn(S1.shape[1], D1))
@ -216,7 +216,7 @@ def _simulate_sincos(D1, D2, D3, N, num_inducing, Q, plot_sim=False):
ax.legend() ax.legend()
for i, Y in enumerate(Ylist): for i, Y in enumerate(Ylist):
ax = fig.add_subplot(2, len(Ylist), len(Ylist) + 1 + i) ax = fig.add_subplot(2, len(Ylist), len(Ylist) + 1 + i)
ax.imshow(Y) ax.imshow(Y, aspect='auto', cmap=cm.gray) # @UndefinedVariable
ax.set_title("Y{}".format(i + 1)) ax.set_title("Y{}".format(i + 1))
pylab.draw() pylab.draw()
pylab.tight_layout() pylab.tight_layout()
@ -298,7 +298,7 @@ def mrd_simulation(optimize=True, plot=True, plot_sim=True, **kw):
if optimize: if optimize:
print "Optimizing Model:" print "Optimizing Model:"
m.optimize('scg', messages=1, max_iters=8e3, max_f_eval=8e3, gtol=.1) m.optimize(messages=1, max_iters=8e3, max_f_eval=8e3, gtol=.1)
if plot: if plot:
m.plot_X_1d("MRD Latent Space 1D") m.plot_X_1d("MRD Latent Space 1D")
m.plot_scales("MRD Scales") m.plot_scales("MRD Scales")

View file

@ -193,7 +193,7 @@ class lvm_dimselect(lvm):
GPy.examples.dimensionality_reduction.BGPVLM_oil() GPy.examples.dimensionality_reduction.BGPVLM_oil()
""" """
def __init__(self, vals, Model, data_visualize, latent_axes=None, sense_axes=None, latent_index=[0, 1]): def __init__(self, vals, Model, data_visualize, latent_axes=None, sense_axes=None, latent_index=[0, 1], labels=None):
if latent_axes==None and sense_axes==None: if latent_axes==None and sense_axes==None:
self.fig,(latent_axes,self.sense_axes) = plt.subplots(1,2) self.fig,(latent_axes,self.sense_axes) = plt.subplots(1,2)
elif sense_axes==None: elif sense_axes==None:
@ -201,7 +201,7 @@ class lvm_dimselect(lvm):
self.sense_axes = fig.add_subplot(111) self.sense_axes = fig.add_subplot(111)
else: else:
self.sense_axes = sense_axes self.sense_axes = sense_axes
self.labels = labels
lvm.__init__(self,vals,Model,data_visualize,latent_axes,sense_axes,latent_index) lvm.__init__(self,vals,Model,data_visualize,latent_axes,sense_axes,latent_index)
print "use left and right mouse butons to select dimensions" print "use left and right mouse butons to select dimensions"
@ -221,7 +221,7 @@ class lvm_dimselect(lvm):
self.latent_axes.cla() self.latent_axes.cla()
self.Model.plot_latent(which_indices=self.latent_index, self.Model.plot_latent(which_indices=self.latent_index,
ax=self.latent_axes) ax=self.latent_axes, labels=self.labels)
self.latent_handle = self.latent_axes.plot([0],[0],'rx',mew=2)[0] self.latent_handle = self.latent_axes.plot([0],[0],'rx',mew=2)[0]
self.modify(self.latent_values) self.modify(self.latent_values)