运行时报错RuntimeError: expected device cpu but got device cuda:0

2022-09-02 20:22:25 浏览数 (1)

最近在运行pytorch代码时发现的该错误,不管是 expected cpu 还是 expected cuda, 本质原因都是类型不匹配。

一般是因为:

  1. 等号左边和右边类型不一样
  2. 运算符左右两端类型不同,例: - * /
  3. 同一个函数内,传入参数的类型不同,例matmul等

你要考虑你的大环境是在什么上面部署的,CPU 还是 CUDA,然后再出错位置尝试修改数据.

->cuda : data.cuda()

->cpu: data.cpu()

->numpy:注意cuda类型不能直接转numpy 须先转成Cpu类型,data.cpu().numpy()

注意在CUDA下训练中的数据不能直接转换为numpy,data.cpu().detach().numpy()

0 人点赞