1
resposta

Erro com GPU na linha: pred = net(Xtns)

Olá :)

quando eu uso .to(device) tenho o seguinte erro:

Traceback (most recent call last): File "/home/jardel/projects/alura/Python/pytorch/training-neural-network/main.py", line 34, in pred = net(Xtns) ^^^^^^^^^ ... 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)

quando eu remove o .to(device) o código funciona.

Faltava fazer o casting no Xtns: Xtns = Xtns.to(device)

1 resposta

Olá, Jardel!

Pelo que entendi, você estava tentando executar seu código na GPU e está recebendo um erro que indica que nem todos os tensores estão no mesmo dispositivo. Isso geralmente ocorre quando você está tentando realizar operações entre tensores que estão em dispositivos diferentes, como a CPU e a GPU.

Você mencionou que quando remove o .to(device), o código funciona. Isso provavelmente ocorre porque, neste caso, todos os tensores estão sendo processados na CPU.

A solução que você mencionou, de fazer o casting no Xtns (Xtns = Xtns.to(device)), é justamente o que você precisa fazer para garantir que todos os tensores estejam no mesmo dispositivo.

Forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software