YOLO7报错:indices should be either on cpu or on the same device as the indexed tensor (cpu)

这篇具有很好参考价值的文章主要介绍了YOLO7报错:indices should be either on cpu or on the same device as the indexed tensor (cpu)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当我们的数据有部分在GPU上运行,有部分在CPU上运行时会报这个错,
一般有GPU的话都会选择在GPU上面跑模型,但要注意将其他定义的对象也放在GPU上面,否则应该默认是在CPU上面。
indices should be either on cpu or on the same device as the indexed tensor,人工智能,人工智能,深度学习,python
如图所示,
x是从GPU中传过来的,但idx不是,idx是我们自己生成的,它默认放在CPU中,所以我们需要也把它放到GPU中,解决方法:加 .to(DEVICE) 其中DEVICE已定义。

具体解决办法:
在loss.py文件中增加下图中第一行,修改下面二三行
1.device = targets.device
indices should be either on cpu or on the same device as the indexed tensor,人工智能,人工智能,深度学习,python
2.from_which_layer.append((torch.ones(size=(len(b),)) * i).to(torch.device(device)))这里共有四处需要修改
indices should be either on cpu or on the same device as the indexed tensor,人工智能,人工智能,深度学习,python
3.fg_mask_inboxes = fg_mask_inboxes.to(torch.device(device))这里共有四处需要修改
indices should be either on cpu or on the same device as the indexed tensor,人工智能,人工智能,深度学习,python文章来源地址https://www.toymoban.com/news/detail-523989.html

到了这里,关于YOLO7报错:indices should be either on cpu or on the same device as the indexed tensor (cpu)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包