我目前在Anaconda上使用Python 3.5.5,我无法导入火炬。它在Spyder中给我以下错误:
Python 3.5.5 |Anaconda, Inc.| (default, Mar 12 2018, 17:44:09) [MSC v.1900
64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 6.2.1 -- An enhanced Interactive Python.
import torch
Traceback (most recent call last):
File "<ipython-input-1-eb42ca6e4af3>", line 1, in <module>
import torch
File "C:\Users\trish\Anaconda3\envs\virtual_platform\lib\site-
packages\torch\__init__.py", line 76, in <module>
from torch._C import *
ImportError: DLL load failed: The specified module could not be found.
互联网上的许多建议都说工作目录不应该是火炬包所在的目录,但是我手动将我的工作目录设置为C:/ Users / trish / Downloads,我收到同样的错误。
此外,我已经尝试了以下内容:从头开始重新安装Anaconda和所有软件包,我确保我的目录中没有重复的“torch”文件夹。
请帮忙!谢谢!
我在Windows 10中遇到过类似的问题......
解:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
%PATH%
环境变量中当我使用带有python 3.6.8的conda环境和来自通道-c pytorch的conda安装的pytorch时,我也遇到了同样的问题。
这是我的工作方式:
1个:) conda create -n envName python=3.6 anaconda
2 :) conda update -n envName conda
3 :) conda activate envName
4 :) conad install pytorch torchvision cudatoolkit=9.0 -c pytorch
然后用给定的代码测试火炬:
5 :) python -c "import torch; print(torch.cuda.get_device_name(0))"
注意:如果你有一个cuda兼容的gpu,第5步将返回你的gpu名称
总结:我刚创建了一个包含整个anaconda的conda环境,然后解决了无与伦比的conda版本的问题我从基础环境更新了新环境的conda,然后在该环境中安装了pytorch并测试了pytorch。
对于CPU版本,这里是我的另一个答案的链接:https://gist.github.com/peterjc123/6b804651288e76db7b5fabe5348e1f03#gistcomment-2842825
https://gist.github.com/peterjc123/6b804651288e76db7b5fabe5348e1f03#gistcomment-2842837
确保为您的环境安装了正确版本的pytorch。我有同样的问题我在Windows上使用pytorch,但我安装了默认包,这是为了cuda 8.所以我重新安装了cpu的pytorch包,这是我需要的。
运行带有纯pip的火炬时,我遇到了同样的问题,并通过切换到conda解决了这个问题。以下步骤:
pip安装问题:
import torch
File "C:\Program Files\Python35\lib\site-packages\torch\__init__.py", line 78, in <module>
from torch._C import *
ImportError: DLL load failed: The specified module could not be found.
切换到conda后,它工作正常。我相信conda通过安装vs_redist 2017解决了这个问题
vs2017_runtime 15.4.27004.2010 peterjc123
但我已经尝试过它没有conda它没有帮助。找不到如何检查(和调整)Python的vs_redist。
有同样的问题并通过重新安装numpy与mkl(英特尔的数学内核库)https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy修复它
为您的机器下载正确的.whl
。对我来说它是numpy-1.14.5 + mkl-cp36-cp36m-win_amd64.whl(python 3.6,windows,64位)然后使用pip安装。
pip install numpy‑1.14.5+mkl‑cp36‑cp36m‑win_amd64.whl
我有同样的问题。在我的情况下,我不想要GPU版本的pytorch。我卸载了它。版本是pytorch:0.3.1-py36_cuda80_cudnn6he774522_2 peterjc123。
问题是cuda和cudnn。然后使用以下命令安装,现在它可以正常工作!
conda install -c peterjc123 pytorch-cpu
Windows10解决方案(这适用于我的系统):
我的系统中遇到了同样的问题。以前我使用的是Python 3.5,我使用virtualenv模块创建了一个名为pytorch_test的虚拟环境,因为我不想搞砸我的tensorflow安装(这花了我很多时间)。我遵循了每一条指令,但它似乎没有奏效。我安装了python 3.6.7将它添加到路径中。然后我用以下方法创建了虚拟环境:
virtualenv --python=3.6 pytorch_test
然后转到目标文件夹
cd D:\pytorch_test
并激活在cmd中输入命令的虚拟环境:
.\Scripts\activate
执行此操作后,命令提示符将显示:
(pytorch_test) D:\pytorch_test>
如果您在使用之前没有这样做,请更新pip:
(pytorch_test) D:\pytorch_test>python -m pip install --upgrade pip
然后从网站上安装numpy + mkl:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
如果你有python 3.6.7与wheel文件一起使用,请从列表中选择正确的版本:numpy-1.15.4 + mkl-cp36-cp36m-win_amd64.whl(对于64位)
(注意,如果整个工作不起作用,只需单独使用numpy安装和mkl安装)然后使用以下命令安装openmp:
(pytorch_test) D:\pytorch_test>pip install intel-openmp
现在你完成了先决条件。要安装pytorch,请转到以前的版本站点:https://pytorch.org/get-started/previous-versions/
在此处从Windows二进制文件列表中选择合适的版本。例如,我在我的系统中使用python 3.6.7安装了CUDA 9.0,所以我使用了gpu版本:
cu90 /火炬-1.0.0-CP36-cp36m-win_amd64.whl
(有两个可用版本0.4.0和1.0.0用于pytorch,我用1.0.0)
下载文件后使用pip安装它(假设whl文件在D :)中。您必须从虚拟环境pytorch_test本身执行此操作:
(pytorch_test) D:\pytorch_test>pip install D:\torch-1.0.0-cp36-cp36m-win_amd64.whl
像六,枕头的先决条件将自动安装。完成所有操作后,使用torchvision安装模型。只需输入:
(pytorch_test) D:\pytorch_test>pip install torchvision
要检查一切正常,请尝试以下脚本:
import torch
test = torch.rand(4, 7)
print(test)
如果一切都很好,那么它就不是问题。每当出现这样的问题时,它都与一个或多个依赖项的版本不匹配有关。这也发生在tensorflow安装期间。
使用cmd中的deactivate命令停用以下虚拟环境:
(pytorch_test) D:\pytorch_test>deactivate
这是我系统中pip列表的输出:
Package Version
------------ -----------
intel-openmp 2019.0
mkl 2019.0
numpy 1.16.2
Pillow 6.0.0
pip 19.0.3
setuptools 41.0.0
six 1.12.0
torch 1.0.0
torchvision 0.2.2.post3
wheel 0.33.1
希望这可以帮助。这是我在这个社区的第一个答案,希望你们都觉得它很有帮助。在尝试各种组合后,我今天下午设置了pytorch。安装CNTK和tensorflow时,我遇到了同样的导入问题。无论如何,我在不同的虚拟环境中将它们分开,以便我可以随时使用它们。