Changed initalise_latent to take lower of init=PCA and corrected import

This commit is contained in:
Alan Saul 2013-12-17 15:08:27 +00:00
parent d8312bba5c
commit 9f0c2ea1b7
3 changed files with 5 additions and 8 deletions

View file

@ -12,7 +12,7 @@ from .. import util
def initialise_latent(init, input_dim, Y): def initialise_latent(init, input_dim, Y):
Xr = np.random.randn(Y.shape[0], input_dim) Xr = np.random.randn(Y.shape[0], input_dim)
if init == 'pca': if init.lower() == 'pca':
from ..util.linalg import pca from ..util.linalg import pca
PC = pca(Y, input_dim)[0] PC = pca(Y, input_dim)[0]
Xr[:PC.shape[0], :PC.shape[1]] = PC Xr[:PC.shape[0], :PC.shape[1]] = PC
@ -30,7 +30,7 @@ class GPLVM(GP):
:type init: 'pca'|'random' :type init: 'pca'|'random'
""" """
def __init__(self, Y, input_dim, init='pca', X=None, kernel=None, normalize_Y=False): def __init__(self, Y, input_dim, init='PCA', X=None, kernel=None, normalize_Y=False):
if X is None: if X is None:
X = initialise_latent(init, input_dim, Y) X = initialise_latent(init, input_dim, Y)
if kernel is None: if kernel is None:
@ -60,7 +60,7 @@ class GPLVM(GP):
for i in range(self.output_dim): for i in range(self.output_dim):
target[:,:,i] = self.kern.dK_dX(np.dot(self.Ki,self.likelihood.Y[:,i])[None, :],X,self.X) target[:,:,i] = self.kern.dK_dX(np.dot(self.Ki,self.likelihood.Y[:,i])[None, :],X,self.X)
return target return target
def magnification(self,X): def magnification(self,X):
target=np.zeros(X.shape[0]) target=np.zeros(X.shape[0])
J = np.zeros((X.shape[0],X.shape[1],self.output_dim)) J = np.zeros((X.shape[0],X.shape[1],self.output_dim))

View file

@ -42,7 +42,7 @@ class MRD(Model):
""" """
def __init__(self, likelihood_or_Y_list, input_dim, num_inducing=10, names=None, def __init__(self, likelihood_or_Y_list, input_dim, num_inducing=10, names=None,
kernels=None, initx='pca', kernels=None, initx='PCA',
initz='permute', _debug=False, **kw): initz='permute', _debug=False, **kw):
if names is None: if names is None:
self.names = ["{}".format(i) for i in range(len(likelihood_or_Y_list))] self.names = ["{}".format(i) for i in range(len(likelihood_or_Y_list))]
@ -237,7 +237,7 @@ class MRD(Model):
partial=g.partial_for_likelihood)]) \ partial=g.partial_for_likelihood)]) \
for g in self.bgplvms]))) for g in self.bgplvms])))
def _init_X(self, init='pca', likelihood_list=None): def _init_X(self, init='PCA', likelihood_list=None):
if likelihood_list is None: if likelihood_list is None:
likelihood_list = self.likelihood_list likelihood_list = self.likelihood_list
Ylist = [] Ylist = []

View file

@ -7,9 +7,6 @@ import pylab as pb
import sys, pdb import sys, pdb
from sparse_gp_regression import SparseGPRegression from sparse_gp_regression import SparseGPRegression
from gplvm import GPLVM, initialise_latent from gplvm import GPLVM, initialise_latent
# from .. import kern
# from ..core import model
# from ..util.linalg import pdinv, PCA
class SparseGPLVM(SparseGPRegression, GPLVM): class SparseGPLVM(SparseGPRegression, GPLVM):
""" """