コード例 #1
0
ファイル: mnist_hmc.py プロジェクト: sparseMCMC/NIPS2015
#scale data
X_train = X_train/255.0
X_train = X_train*2. - 1.
X_test = X_test/255.0
X_test = X_test*2. - 1.

#randomize order
i = np.random.permutation(X_train.shape[0])
i = i[:ndata]
X_train, Y_train = X_train[i,:], Y_train[i,:]

#load vb model, create mcmc model, init mc v=from vb
m_vb = GPy.load(vb_filename)
k = GPy.kern.RBF(X_train.shape[1], ARD=True) + GPy.kern.White(1, 1e-3)
lik = Multiclass()
m = mcmcGP.SGPMCMC(X=X_train, Y=Y_train, kernel=k.copy(), likelihood=lik.copy(), num_latent_functions=10, Z=m_vb.Z*1)
m.update_model(False)
m.kern[:] = m_vb.kern[:]*1
m.Z.fix()
m.kern.fix()
L = GPy.util.choleskies.flat_to_triang(m_vb.q_u_chol)
U = np.vstack([np.dot(L[i,:,:], np.random.randn(m.V.shape[0])) for i in range(10)]).T
U = U + m_vb.q_u_mean
K = m.kern.K(m.Z)
L = GPy.util.linalg.jitchol(K)
m.V[:] = GPy.util.linalg.dtrtrs(L, U)[0]
m.likelihood.fix(1e-3)
m.update_model(True)

コード例 #2
0
ファイル: mnist_hmc.py プロジェクト: adhaka/NIPS2015
#scale data
X_train = X_train / 255.0
X_train = X_train * 2. - 1.
X_test = X_test / 255.0
X_test = X_test * 2. - 1.

#randomize order
i = np.random.permutation(X_train.shape[0])
i = i[:ndata]
X_train, Y_train = X_train[i, :], Y_train[i, :]

#load vb model, create mcmc model, init mc v=from vb
m_vb = GPy.load(vb_filename)
k = GPy.kern.RBF(X_train.shape[1], ARD=True) + GPy.kern.White(1, 1e-3)
lik = Multiclass()
m = mcmcGP.SGPMCMC(X=X_train,
                   Y=Y_train,
                   kernel=k.copy(),
                   likelihood=lik.copy(),
                   num_latent_functions=10,
                   Z=m_vb.Z * 1)
m.update_model(False)
m.kern[:] = m_vb.kern[:] * 1
m.Z.fix()
m.kern.fix()
L = GPy.util.choleskies.flat_to_triang(m_vb.q_u_chol)
U = np.vstack(
    [np.dot(L[i, :, :], np.random.randn(m.V.shape[0])) for i in range(10)]).T
U = U + m_vb.q_u_mean
K = m.kern.K(m.Z)
コード例 #3
0
ファイル: mnist_demo.py プロジェクト: wangxiong2015/NIPS2015
# randomize order
i = np.random.permutation(X_train.shape[0])
i = i[:ndata]
X_train, Y_train = X_train[i, :], Y_train[i, :]

# obtain k-mean centers for Z init
from scipy.cluster.vq import kmeans

Z, _ = kmeans(X_train[::20, :], num_inducing)
stop


# build vb model
k = GPy.kern.RBF(X_train.shape[1], ARD=True) + GPy.kern.White(1, 1e-3)
lik = Multiclass()
m_vb = GPy.core.SVGP(
    X=X_train, Y=Y_train, kernel=k.copy(), likelihood=lik.copy(), num_latent_functions=10, Z=Z, batchsize=vb_batchsize
)
m = mcmcGP.SGPMCMC(X=X_train, Y=Y_train, kernel=k.copy(), likelihood=lik.copy(), num_latent_functions=10, Z=Z)
m_vb.likelihood.delta.fix(1e-3)
m.likelihood.delta.fix(1e-3)

# set a prior
# pr = GPy.priors.Gamma(3,3)
# m_vb.kern.set_prior(pr)
pr = GPy.priors.Gamma(3, 3)
m.kern.set_prior(pr)

# optimize vb
m_vb.Z.fix()