这几天在运行代码时出现了以下报错:

File "c:\apps\Miniconda3\lib\site-packages\torch\nn\modules\module.py", line 260, in cuda
return self._apply(lambda t: t.cuda(device))
File "c:\apps\Miniconda3\lib\site-packages\torch\nn\modules\module.py", line 187, in _apply
module._apply(fn)
File "c:\apps\Miniconda3\lib\site-packages\torch\nn\modules\module.py", line 187, in _apply
module._apply(fn)
File "c:\apps\Miniconda3\lib\site-packages\torch\nn\modules\module.py", line 193, in _apply
param.data = fn(param.data)
File "c:\apps\Miniconda3\lib\site-packages\torch\nn\modules\module.py", line 260, in
return self.apply(lambda t: t.cuda(device))
File "c:\apps\Miniconda3\lib\site-packages\torch\cuda_init.py", line 161, in _lazy_init
check_driver()
File "c:\apps\Miniconda3\lib\site-packages\torch\cuda_init.py", line 75, in _check_driver
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

查阅相关资料,说是安装的torch版本是cpu版本,用不了cuda。没办法,在PyCharm的终端中先按照网上的方法使用conda重新安装torch,发现没效果,再使用pip安装torch,还是报错。思来想去,在检查PyCharm的settings时偶然发现PyCharm的torch版本是1.10.0,而我在终端中安装的是1.10.1。于是马上把settings中的torch包去掉,发现PyCharm的工程开始报错没有torch,但是在终端使用

python
import torch
print(torch.__version__)

却依然可以打印出torch版本,说明终端和工程使用的编译器不是同一个python版本!!
再仔细检查,发现终端的python是anaconda环境下的python:

python
Python 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

而PyCharm选择的编译器不是anaconda环境下的。
最终,在终端切换python,在编译器的python下使用pip安装torch,解决了问题。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐