Your code basically looks alright.
You could try the following to make the model learn:

lower your learning rate and see if the loss is decreasing (a learning rate of 1e-3 might be a good starter for Adam
try to normalize your input. Currently it looks like you are dealing with some kind of categorical data. In that case an nn.Embedding layer might be helpful.

If that doesn’t help, you could try to overfit your model to a single sample. If that’s not working either, there might be a code bug I’m missing.
As a small side note: Variables are deprecated since PyTorch 0.4.0. You can just use tensors in newer versions.