1
resposta

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument mat1 in method wrapper_CUDA_addmm)

Erro no código

tensor = torch.from_numpy(X1).float()   # X1 é um array numpy. ".float()" faz a conversão para float32
pred = net(tensor)
print(pred.size())                      # torch.Size([300, 1]) - 300 predições com 1 dimensão

Erro:

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument mat1 in method wrapper_CUDA_addmm)

Adicionando:

...
net = net.to('cpu')
pred = net(tensor)
...

Update

Consegui executar no cuda usando torch.device

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
tensor = tensor.to(device)
net = net.to(device)

Fica para referência futura

1 resposta

Oi Emerson, tudo bem?

Obrigada por compartilhar a solução encontrada aqui no fórum. Com certeza poderá ajudar outros alunos que possam lidar com o mesmo problema.

Continue com essa dedicação de explorar possíveis soluções, esse ímpeto é muito importante para progredir no aprendizado! Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!