关于这个报错的原因,一众文章已经讲得很清楚了,就是pytorch和cuda的版本不匹配。具体的解决方案,直接搜这个报错信息就可以搜出来很多文章,照做即可。本文在此也简单总结一下安装步骤:
- 确定自己需要的pytorch版本,然后确定对应的cuda和python版本
- 安装正确版本的cuda
- 创建正确版本的python环境
- 安装正确版本的cudatoolkit
- 安装正确版本的pytorch
本文主要分享一些干货,即个人踩的一些坑、造成的原因以及对应的解决方法:
- 安装pytorch的时候一定要装形如x.y.z+cu111这样的版本,而且要先装好cuda和cudatoolkit再装pytorch,不然会找不到对应库文件,而且报错很隐蔽:使用
torch.cuda.is_available()
显示true,但是在实际训练的时候会报错上述RuntimeError,导致无法训练。 - 我本人是在使用pytorch lightning的时候遇到这个问题的,RuntimeError是在trainer里面触发的,我没办法改pl库里面的代码,只能回过头来解决版本问题;而且同时需要保持所使用的pytorch lightning和torchvision的版本。这种情况方才体现出依赖精确版本号的重要性。