RuntimeError: Input, output and indices must be on the current device 问题
做项目时遇到这个问题
明明就已经加了这条语句,使其运行在我设置好的设备上了。
为何会报错呢?
解决方法
将运行的设备挂到cpu上查看具体的错误信息
在cpu上运行能够查看更多的错误信息。
重新运行后,得到下面的错误信息:
这个错误很具体,这就很好解决了,去看看自己的embedding size。
再回看这个错误语句:
RuntimeError: Input, output and indices must be on the current device
说明有些indices没有挂到cuda上(可能使超出了范围),也在暗示你的embedding环节出现了问题。
总结
使用pytorch的时候,习惯使用语句:
if torch.cuda.is_available(): device = torch.device('cuda') else: device = torch.device('cpu')
使其选择可以使用的设备
一般来说实验电脑都会配有cuda(刚开始学机器学习的时候,大家应该都装了)
但是有时候它的报错信息十分有限,这时候建议将设备设置回使用CPU,查看更多的报错信息。
device = torch.device('cpu')
本文作者:Jev_0987
本文链接:https://www.cnblogs.com/jev-0987/p/17115672.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步