Hello. I’m currently trying to run a deep learning model using PyTorch. This is a rather common question, but I’m not able to figure out what the problem is with my code.
Right now, the model block that I’m running looks like this:
self.linear = nn.Sequential(nn.Linear(in_features=2048, out_features=512),
nn.ReLU(),
nn.Linear(in_features=512, out_features=256),
nn.ReLU(),
nn.Linear(in_features=256, out_features=128),
nn.ReLU(),
nn.Linear(in_features=128, out_features=64))
And I have a tensor that’s of shape (10248, 2048)
.
When I initially ran the program, I got a
*** RuntimeError: Expected object of device type cuda but got device type cpu for argument #1 'self' in call to _th_addmm
I initially thought no big deal, I must have forgotten to put the tensors on GPU. But I noticed I had in fact done that with the tensor = tensor.to('cuda')
code. Since this didn’t work I tried changing it to tensor = tensor.cuda()
and that still didn’t work.
I tried placing a pdb.set_trace()
line to debug it, and after checking the tensor I noticed that it indeed is on GPU. That is, when I print it out, it looks like:
tensor([[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]], device='cuda:0')
What might I have overlooked in this sitaution? Honestly, I’m not sure how to properly interpret the error message either as I can’t find what _th_addmm
means. Any tips are appreciated. Thanks in advance.