I’m building a LSTM model and I want to use as input the result of nn.Embedding().
I transfer my model to GPU using to('cuda'), but when I train it, Torch complains saying that the embedding is on the CPU while the input tensor is on the GPU.
To  test whether there’s something wrong with my model, I simply tried to embed a tensor using the following code:
emb = nn.Embedding(5, 11)
t = torch.tensor([1,2,3])

If I now do emb(t), it works properly. But if I do t = t.cuda() and try again, it says:
RuntimeError: Expected object of backend CPU but got backend CUDA for argument #3 'index'

The all thing works if I put the embedding also on the GPU.
A few questions then:

According to this 44, I should not put the embedding tensor on the GPU since it might be big. But how do I embed it then? To be fair: that refers to PyTorch 0.4, while I’m using PyTorch 1.1: did it change in the meanwhile?
If my embedding layer is inside the Class defining my model, and I put the model on the GPU, shouldn’t it work properly?