背景
注意,网上关于这个问题答案很多,所以我这里将报错描述得更清楚一点:
报错就这一句话,没有多余的报错信息,有的人的回答是针对其他情况的,所以,你自己对号入座决定是否看下去。
平常我记得可以运行,但是今天突然不行,所以能够想到的,一个不知道是不是pytorch版本之类更新的问题。但是想了想,一般都是兼容的。然后,我又发现,有一位朋友使用了0号显卡,并且显存几乎已经占满了,这里你可以再次对号入座。
我发现有的代码会默认将一部分东西放到0号显卡去(暂时没搞懂什么样的代码会,现在运行的是别人的项目),即时我看到其已经指定了将数据放在其他显卡。
这个时候,由于0号显卡满了,就会报上述错误。
解决办法
默认,实际的显卡号就是程序看到的显卡号,程序总是要放一点到0号去,那么我们就是更改程序看到的显卡号,比如将实际显卡号为1号的显卡映射为0号,这样就好了。开头加上如下代码即可:
import os
os.environ['CUDA_VISIBLE_DEVICES'] = "1,2,3"
这样的话,实际1号显卡,对你的程序来说就是0号,2号就是1号,。。。。