def __init__(self, X, Y, kern, likelihood,
mean_function=None,
num_latent=None,
**kwargs):
"""
X is a data matrix, size N x D
Y is a data matrix, size N x R
kern, likelihood, mean_function are appropriate GPflow objects
"""
X = DataHolder(X)
Y = DataHolder(Y)
GPModel.__init__(self, X, Y, kern, likelihood, mean_function, **kwargs)
self.num_data = X.shape[0]
self.num_latent = num_latent or Y.shape[1]
self.q_mu = Parameter(np.zeros((self.num_data, self.num_latent)))
q_sqrt = np.array([np.eye(self.num_data)
for _ in range(self.num_latent)]).swapaxes(0, 2)
transform = transforms.LowerTriangular(self.num_data, self.num_latent)
self.q_sqrt = Parameter(q_sqrt, transform=transform)
评论列表
文章目录