Windows10下Anaconda+MXNET+CUDA10.0+CUDNN7.3.1的配置

最近需要用到MXNET这个库,第一次接触CUDA和MXNET这些,摸索着终于完成了配置,中间遇到如下BUG,记录下来解决方法和安装流程以供参考。
(1)import mxnet时出现:OSError: [WinError 126] 找不到指定的模块。
(2)安装CUDA时不识别显卡,提示:This graphics driver could not find compatible graphics hardware
(3)测试MXNET时,输入语句提示:Upgrade advisory: this mxnet has been built against cuDNN lib version 7300, which is older than the oldest version tested by CI (7600)

首先确定你的电脑是英伟达的显卡,因为CUDA只支持英伟达系列显卡,AMD的不行。

这些环境对版本的要求很高!切记CUDA、CUDNN、MXNET的版本需要匹配!如果没有要求的话可以按照我的版本来!

一、安装

1.安装Anaconda

见我上一篇博客https://blog.csdn.net/qq_40574708/article/details/107181522

2.安装VS2015

VS2015有三个版本:
社区版(Community)、专业版(Professional)、企业版(Enterprise)
通常我们只需要用社区版就可以了,免费的,足够我们使用。

社区版下载地址:http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso

下载过后是一个.iso文件,有的朋友说需要安装虚拟光驱才可以打开,但是我并没有安装就可以使用…所以如果你和我一样,下载过后双击就可以如下图一样打开,就直接安装就可以了。如果不行的话,就装一个虚拟光驱吧。

在这里插入图片描述
运行这个.exe文件,进入安装界面,等待它初始化后在选择安装模式前一路next就好,由于怕出什么幺蛾子,安装位置我选择的默认,在选择工具处需要注意以下,如果你只需要C++编程,那么只需要勾选C++就好了,下面的web编程如果需要的话再勾选,当然如果你空间足够大,全选也没什么问题。
在这里插入图片描述
然后等待其安装就好。注意安装完成后有两个vs2015,其中一个是blend for vs2015,不要用这个…这个是干啥的我也不知道,但是我知道你需要的是vs2015。
在这里插入图片描述

3.安装CMAKE

下载地址:www.cmake.org
我安装的是最新的版本3.17,如果没有别的需求的话你也可以安装这个版本,可以用的。安装CMAKE没有什么好说的,安装过程中记得勾选上添加环境变量,然后一路NEXT即可。

4.安装CUDA10.0

下载地址:https://developer.nvidia.com/cuda-downloads
在这里插入图片描述
依次选择好操作系统等选项,按照我所选的(深绿色)选项选择好,先不要点下面的下载,默认下载是最新的CUDA版本,不过我们要安装的是CUDA10.0,点击图片最下面一行的最右边的按钮–历史版本。
在这里插入图片描述
点击下载我鼠标所指的CUDA10.0,切记版本很重要,如果你没有别的需求的话安装10.0,我已经试过啦。

然后等待其下载,下载好后打开,下图这个是资源临时提取位置,默认就好,提取安装完成后,这个位置的临时提取的文件会清除掉的。

注意如果你安装的CUDA版本比较旧,比如我一开始安装的CUDA8.0,可能会出现显卡不识别的问题,因为有的电脑厂商会给显卡做一些特殊的硬件编号,导致低版本的CUDA安装程序不识别。所以我推荐安装CUDA10.0,如果你有别的需求,必须要安装低版本的,而又出现显卡不匹配的情况,需要在此处做一些操作,后文“BUG解决“模块会给出方法。在这里插入图片描述

然后等待其提取,文件比较多,需要好一会儿。

直到出现这个界面,点击同意。
在这里插入图片描述
然后点击自定义安装,因为我们有一些东西是不需要的。

在这里插入图片描述

然后安装组件如图这样选择,因为下面的两个组件一般情况下我们是有的,不需要重新安装了。

在这里插入图片描述

然后下一步,选择位置,我是一路默认。

5.安装CUDNN

注意这个版本的匹配也很重要,选择不好的话会影响MXNET和CUDA,所以还是那句话,可以按我的版本来。

下载地址:https://developer.nvidia.com/rdp/cudnn-download

这里需要注册一个英伟达账号,注册就是了。

点击下面鼠标所指的历史版本:
在这里插入图片描述

往下翻,找到鼠标所指的7.3.1for CUDA10.0这个版本,点击下载
在这里插入图片描述
下载完成后是一个压缩包,解压后是这个样子,我们需要把目录下的bin、include以及lib目录中的文件拷贝到相应的cuda安装目录中的bin、include和lib目录中去,我的CUDA安装目录是默认的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0,如果你更改了,需要复制到对应的你选择的安装位置。
注意是复制文件夹下的文件,而不是文件夹!这三个文件夹bin,include,lib中各有一个文件,一共三个文件。其中lib下有一个x64的子目录,再打开这个子目录,需要复制的是文件cudnn.lib
解压出来的文件
CUDA的安装位置的目录

然后将解压后的cudnn目录下的bin目录加到PATH环境变量里去。

6.安装MXNET

我们要安装的是GPU版本的MXNET,安装CPU版本的是用pip install mxnet这个命令。

安装GPU版本的如下:
打开cmd,在anaconda中新建一个环境,具体操作可以百度。
然后在cmd中输入”activate 环境名“,进入到环境中。
接着输入命令:

注意此处的mxnet-cu100是表示对应的CUDA版本为CUDA10.0,如果你安装的是CUDA8,就要改成mxnet-cu80。另外如果你安装的是CUDA10.1,那么mxnet也有个版本是mxnet-cu101,但是其他小版本貌似没有这样子。这里命令后边的网址是用的豆瓣的源,下载比较快,要不然要等好半天。

pip install --pre mxnet-cu100 -i https://pypi.douban.com/simple

然后等待其下载安装完成。

完成后测试一下是否安装成功:
还是在刚才的cmd界面,在你创建的环境下输入”python“,运行python,然后输入如下语句:

import mxnet as mx
a = mx.nd.ones(1)
b = mx.nd.ones(1,mx.gpu())

a.asnumpy()
b.asnumpy()

如果结果如下,那恭喜你安装成功了。
在这里插入图片描述

但是此处如果版本不对的话,在import mxnet语句会出现OSError: [WinError 126] 找不到指定的模块。
或者在运行b = mx.nd.ones(1,mx.gpu())时,出现错误Upgrade advisory: this mxnet has been built against cuDNN lib version 7300, which is older than the oldest version tested by CI (7600)

这都是版本不对的问题,在下文给予解释。

6.安装完成

二、BUG解决

1.安装CUDA时不识别显卡,提示:This graphics driver could not find compatible graphics hardware

在这里插入图片描述
这是错误界面,借用一张别人的错误图。

我的电脑是华硕天选,显卡是2060,华硕在出厂时应该是给这块显卡做了一些单独的配置,所以其硬件号不被低版本的CUDA安装程序所识别,所以我安装了CUDA10.0,是可以识别的,如果你需要安装低版本的,请参考:

https://blog.csdn.net/jacke121/article/details/78960658
https://tieba.baidu.com/p/3105785379?red_tag=2608527661
https://tieba.baidu.com/p/5778946954

最快捷的方法还是安装高版本CUDA…

2.import mxnet时出现:OSError: [WinError 126] 找不到指定的模块。

这是由于CUDA和MXNET版本不匹配的原因。比如你安装的是CUDA10.1,但是安装MXNET时输入的是mxnet-cu100,那么就会造成版本不匹配。

通过查找DLL文件你会发现,其DLL文件需要的版本是不匹配的,但是DLL文件属实不好替换,所以不如重新安装版本匹配的CUDA和MXNET来的方便。

参考:
https://discuss.gluon.ai/t/topic/8390/13

往下翻,这个兄弟的话点醒了我。在这里插入图片描述

所以我选择卸载不匹配版本的CUDA和MXNET,重新安装CUDA10.0和mxnet-cu100。

3.测试MXNET时,输入语句提示:Upgrade advisory: this mxnet has been built against cuDNN lib version 7300, which is older than the oldest version tested by CI (7600)

这是由于CUDNN和MXNET版本不匹配造成的。而且它不仅仅是错误提示,GPU也不会运行的。

提示信息意思是:”这个mxnet是根据cuDNN lib 7300版本构建的,该版本比CI(7600)测试的最旧版本旧。“

所以懂了,MXNET是通过旧版本的CUDNN7.3系列构建的,而你的CUDNN版本太新了,所以你需要下载旧版本的CUDNN,这个比较好解决,下载旧版本的CUDNN,再把那几个文件复制到对应CUDA安装目录就好了,见安装步骤所述。

————————————————————————————————

鸽了好久没写东西,这段时间一直在忙考试。考试完该写论文了…这个假期必须要写一篇出来。跌跌撞撞两天才安装好了这套配置…版本匹配真的很重要,要不出的错误都不好找原因。个人建议按照这个版本配置来,亲测可用。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值