Hello. The make the question title a bit more eloquent, basically I’m running a model with PyTorch tensors and for some reason every time I try to get the ouput from the model I get
*** RuntimeError: Expected object of device type cuda but got device cpu for argument #1 'self' in call to _th_index_select

Here’s the model I have:
class MatEmbedding(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.config = config
        self.embedding_dim = self.config.embedding_dim
        self.num_embeddings = self.config.num_embeddings

        self.embed = nn.Embedding(num_embeddings=self.num_embeddings, embedding_dim=self.embedding_dim)

    def forward(self, inputs):
        indices = inputs[:, 0].to(torch.long)
        embed_result = self.embed(indices)

        return torch.cat([embed_result, inputs[:, 1:]], dim=-1)


### Simple MLP model ###
class MLP(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.config = config
        self.in_features = self.config.in_features
        self.out_features = self.config.out_features
        self.hidden_dim = self.config.hidden_dim
        self.embedding_dim = self.config.embedding_dim
        self.alpha = self.config.alpha

        self.embed = MatEmbedding(self.config)
        self.linear1 = nn.Linear(in_features=(self.in_features + self.embedding_dim - 1), out_features=self.hidden_dim)
        self.activ = nn.ELU(alpha=self.alpha)
        self.linear2 = nn.Linear(in_features=self.hidden_dim, out_features=self.out_features)

    def forward(self, inputs):
        out = self.embed(inputs)
        out = self.linear1(out)
        out = self.activ(out)
        out = self.linear2(out)

        return out

Regarding the data, when I run data.is_cuda I get True. Does anybody have any idea where I might be going wrong? Thanks in advance.