We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I was trying to write a small example for GP classification.
import pyro import pyro.contrib.gp as gp import numpy as np import torch X = torch.randn(200, 2) Y = torch.logical_xor(X[:, 0] > 0, X[:, 1] > 0).double() kernel = gp.kernels.RBF(input_dim=2) likelihood = gp.likelihoods.Binary() model = gp.models.VariationalGP(X, Y, kernel, likelihood=likelihood, whiten=True)
The above code works. However, as expected if instead of X = torch.tensor, I passed a numpy.arrayI got an error which wasn't very obvious.
X = torch.tensor
numpy.array
rng = np.random.RandomState(0) X = rng.randn(200, 2) likelihood = gp.likelihoods.Binary() model = gp.models.VariationalGP(X, Y, kernel, likelihood=likelihood, whiten=True)
Error Trace
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Input In [5], in <module> 3 X = rng.randn(200, 2) 5 likelihood = gp.likelihoods.Binary() ----> 6 model = gp.models.VariationalGP(X, Y, kernel, likelihood=likelihood, whiten=True) File ~/miniforge3/lib/python3.9/site-packages/pyro/contrib/gp/models/vgp.py:74, in VariationalGP.__init__(self, X, y, kernel, likelihood, mean_function, latent_shape, whiten, jitter) 63 def __init__( 64 self, 65 X, (...) 72 jitter=1e-6, 73 ): ---> 74 super().__init__(X, y, kernel, mean_function, jitter) 76 self.likelihood = likelihood 78 y_batch_shape = self.y.shape[:-1] if self.y is not None else torch.Size([]) File ~/miniforge3/lib/python3.9/site-packages/pyro/contrib/gp/models/model.py:93, in GPModel.__init__(self, X, y, kernel, mean_function, jitter) 91 def __init__(self, X, y, kernel, mean_function=None, jitter=1e-6): 92 super().__init__() ---> 93 self.set_data(X, y) 94 self.kernel = kernel 95 self.mean_function = ( 96 mean_function if mean_function is not None else _zero_mean_function 97 ) File ~/miniforge3/lib/python3.9/site-packages/pyro/contrib/gp/models/model.py:189, in GPModel.set_data(self, X, y) 135 def set_data(self, X, y=None): 136 """ 137 Sets data for Gaussian Process models. 138 (...) 187 number of data points. 188 """ --> 189 if y is not None and X.size(0) != y.size(-1): 190 raise ValueError( 191 "Expected the number of input data points equal to the " 192 "number of output data points, but got {} and {}.".format( 193 X.size(0), y.size(-1) 194 ) 195 ) 196 self.X = X TypeError: 'int' object is not callable
I think something like type(X) should be torch.tensor would perhaps be more useful?
type(X)
torch.tensor
The text was updated successfully, but these errors were encountered:
No branches or pull requests
I was trying to write a small example for GP classification.
The above code works. However, as expected if instead of
X = torch.tensor
, I passed anumpy.array
I got an error which wasn't very obvious.Error Trace
I think something like
type(X)
should betorch.tensor
would perhaps be more useful?The text was updated successfully, but these errors were encountered: