CUDA error: an illegal memory access was encountered

举报
风吹稻花香 发表于 2021/06/04 23:52:32 2021/06/04
【摘要】   报错原因1: 这种报错的是模型model、输入数据(input_image、input_label)没有全部移动到GPU(cuda)上,或者没有移动到同一块gpu上。 **温馨提示:**debug时一定要仔细检查是否每一个输入变量以及网络模型都移动到了GPU上,我一般报错都是因为漏掉了其中一两个。 解决方法: 将model、input_image、input...

 

报错原因1:
这种报错的是模型model、输入数据(input_image、input_label)没有全部移动到GPU(cuda)上,或者没有移动到同一块gpu上。
**温馨提示:**debug时一定要仔细检查是否每一个输入变量以及网络模型都移动到了GPU上,我一般报错都是因为漏掉了其中一两个。

解决方法:
将model、input_image、input_label全部移动到cuda上,实例代码如下:

方法1:

model = model.cuda()
input_image = input_iamge.cuda()
input_label = input_label.cuda()
 

方法2:

device = torch.device("cuda 1" if torch.cuda.is_available() else "cpu")
model = model.to(device)
input_image = input_iamge.to(device)
input_label = input_label.to(device)

方法3:

model = model.cuda(2)
input_image = input_iamge.cuda(2)
input_label = input_label.cuda(2)

我遇到的情况不是这样:

我遇到的情况是,只有cuda(0)不报错,其他gpu都报错

 

是在forward函数里面,tensor的clone()函数引起的,比如下

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/117430084

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。