RuntimeError: expected device cuda:4 but got device cpu
报错情况在计算两个tensor的loss时,使用了如下代码:u = eps * (torch.log(mu+1e-8) - torch.logsumexp(self.M(C, u, v), dim=-1)) + u报错:RuntimeError: expected device cuda:4 but got device cpu错误原因这里,M是一个函数。C的类型为:tensor([[44514.
报错情况
在计算两个tensor的loss时,使用了如下代码:
u = eps * (torch.log(mu+1e-8) - torch.logsumexp(self.M(C, u, v), dim=-1)) + u
报错:RuntimeError: expected device cuda:4 but got device cpu
错误原因
这里,M是一个函数。C的类型为:
tensor([[44514.2383 ... 44565.1055]], device='cuda:4',
grad_fn=<SumBackward1>)
u的类型为:
(Pdb) u
tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
u和C一个在cpu上,一个在gpu上,从而报错RuntimeError: expected device cuda:4 but got device cpu
解决方法
定义u的时候加上u.cuda(gpu_ids[0])
即u.cuda(4)
欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)