Win7离线安装pytorch-GPU步骤及DLL load failed的处理
任务描述:
单位配的电脑是Lenovo的Think Station(显卡是NVIDIA Quadro P4000),但是只能离线使用且强制Win7;
目的:离线安装GPU版的pytorch,记录下可行的操作流程,再需要时能快速安装环境,不必在编程环境上浪费时间
Win7离线安装pytorch-GPU步骤及DLL load failed的处理
- 任务描述:
- 一、安装CUDA:
- 1.确定CUDA版本
- 2.下载并安装CUDA
- 二、CUDNN的下载与使用
- 三、配置环境变量
- 1.配置环境变量
- 四、pytorch-GPU的安装(容易出问题)
- 常见的错误:DLL load failed
- 解决办法:
- 1.可能是Python的版本出现了问题。
- 2.可能是VC组件没有安装
- 3.可能是pytorch的版本不对
- 4.可能是部分依赖包没有安装
一、安装CUDA:
1.确定CUDA版本
查看自己电脑显卡支持cuda最高版本的步骤:
(1)打开NVIDIA控制面板
(2)点击帮助、系统信息
(3)点击组件 ,红线处即为CUDA的最高支持版本
2.下载并安装CUDA
下载CUDA驱动请点这
下载后选择自定义安装,可根据自己需要选择安装组件(不用全选)
如果图省事就直接默认路径即可,但是可以截个图记录一下,后面添加环境变量会用到。
二、CUDNN的下载与使用
CUDNN下载请点击
下载之前官网会让你注册一个账号并填写一个问卷调查,跟着他的步骤一步步来就可以,填完之后找到支持你已安装的CUDA版本的CUDNN,下载就可以
解压下载的压缩包,并将里边的bin文件夹、include文件夹、lib文件夹复制到CUDA的安装目录里面,(注:之前cuda安装目录里面也有这些文件夹,咱们赋值cudnn的是要把CUDA的这三个文件给覆盖掉)
———————————————
版权声明:以上部分为CSDN博主「wobushizhainanyu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
https://blog.csdn.net/wobushizhainanyu/article/details/107736090
三、配置环境变量
1.配置环境变量
计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V8_0两个环境变量,接下来,还要在系统中添加以下几个环境变量:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0(这是默认安装位置的路径,也可改为自定义路径)
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
在系统变量 PATH 的末尾添加:
%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
再添加如下4条(默认安装路径):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\lib\x64;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64;
如果你选用了自定义路径,上述这些默认路径都应该相应替换为你的自定义路径,如下为我的环境变量和PATH的配置情况:
环境变量:
添加完毕后PATH应该是这样的
配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe;
首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe,应该得到下图:
如果以上两步都返回了Result=PASS,那么就算成功啦。
————————————————
版权声明:以上部分为CSDN博主「qilixuening」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qilixuening/article/details/77503631
四、pytorch-GPU的安装(容易出问题)
确定好CUDA和CUDNN安装完成后开始安装torch 和torchvision(版本对应如下)
我成功安装的版本是torch1.5和torchvision0.6
因torch.whl文件较大,建议最好下载下来离线安装
torch下载地址
下载后使用pip安装即可
安装好后使用下面语句试运行,如果不报错且可用设备是CUDA就说明安装好了
import torch
import torchvision
torch.cuda.is_available()
device = torch.device("cuda:0" if(torch.cuda.is_available() and True > 0)else "cpu")
print(device)
print(torch.cuda.get_device.name(0))
常见的错误:DLL load failed
通过pip安装pytorch,from torch._C import * ImportError: DLL load failed
这是当时卡了我好几个小时的问题,我也翻看了CSDN上很多网友的解决办法都不太管用。于是又查了pytorch官方文档的issue,也看了GitHub和stackflow上的讨论,大致的原因应该是pip安装时whl包并不全,部分依赖包并没有打包进来,需要补充完整。
下面是我总结的几种可能的原因以及解决办法,也可能不全。如果还有其他办法希望大佬可以在评论区提出更好办法
解决办法:
参考链接
解决这个问题可以根据以下的思路:
1.可能是Python的版本出现了问题。
我之前是Python3.6.0版本,一直调不通。我就从官网上直接下载Python3.6.6的安装包。GitHub上的讨论也说Python3.x.0的版本建议升级到Python3.x.y
2.可能是VC组件没有安装
若从来没有安装过VC组件的可以装一下,百度搜安装VC_redist.x64.exe
3.可能是pytorch的版本不对
在CUDA版本允许的情况下选择尽可能新的版本。我在调试的过程中一开始使用的是torch1.4,但是怎么也调不通,我就尝试安装torch1.5版本的就可以了
4.可能是部分依赖包没有安装
查看了pytorch的官方issue,pip安装的话会有一些依赖包没有包括在whl中,需要另外安装
如果有互联网的环境下
pip install mkl mkl-fft intel-openmp numpy
如果是离线环境下
pip download -d d:\packages mkl mkl-fft intel-openmp numpy
pip install --no-index --find-links=d:\packages ***.whl(添加各个包即可)
尤其要注意numpy的版本,最好是新版本