Win10环境下安装theano并配置GPU详细教程

一.软件和环境

(1)安装日期2016/12/23

(2)原材料VS2013cuda-8.0(最好下载cuda7.5,目前theano-0.8.2cuda-8支持不是很好),Anaconda3-4.2.064位);

(3)环境为win10.

 

二.安装步骤

(1)安装VS2013。这个没什么可说的,下载64位版本后就是一路下一步、确定就行,记住安装位置就可以了,我这里的安装目录是D:\software\VS2013

 

接着右键我的电脑-》属性-》高级系统设置-》环境变量,之后编辑系统变量Path,加入两个路径D:\software\VS2013\VC\binD:\software\VS2013\Common7\IDE,以分号隔开,如图:

 

点击确定即可。

 

(2)安装cuda。这个也没什么可说的,到官网上下载cuda,并一路下一步+确定就好了,注意如果安装过程中win10提示阻止某项操作,一定要选择允许本次操作或允许程序所有操作,否则cuda就会安装失败。Cuda官网地址为

http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/#axzz46v2MC6l8

下载地址为https://developer.nvidia.com/cuda-downloads

如图:

 

注意:这是cuda-8版本,对目前版本的theano支持不是很好,不过不影响使用,最好还是下载cuda7.5,我这里懒得再重装一遍,所以就用的cuda-8

还有一定要记住cuda的安装路径,我的路径就是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0,如图:

 

 

(3)右键我的电脑-》属性-》高级系统设置-》环境变量,可以看到系统变量中增加了两个变量CUDA_PATHCUDA_PATH_V8_0,如图:

 

之后编辑系统变量Path,加入两个路径%CUDA_PATH%\lib\x64%CUDA_PATH%\bin,要用分号隔开,如图:

 

点击确定。

打开命令行,输入nvcc -V,如果出现下图则安装成功:

 

 

并可到目录C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\1_Utilities\deviceQuery下用VS2013打开并运行测试样例deviceQuery_vs2013.vcxproj文件,如图:(注意C:\ProgramData为隐藏文件夹,需要点击C-》查看-》选项-》查看,选中显示隐藏的文件、文件夹和驱动器,点击确定。如图)

 

图为显示C:\ProgramData文件夹的查看选项

 

 

                                                                                       

图为deviceQuery_vs2013.vcxproj的位置

 

 

图为在VS2013中的运行结果

最后一行为Result = Pass则表示安装配置成功。

 

 

(4)安装Anaconda3-4.2.0,这个很简单,就是一路确定即可,记住安装位置,如我就是安装在D:\software\Anaconda3,如图:

 

 

接着右键我的电脑-》属性-》高级系统设置-》环境变量,在用户变量中添加PATH,并加入路径D:\software\Anaconda3D:\software\Anaconda3\ScriptsD:\software\Anaconda3\Library\bin,点击确定。如图:

 

 

之后进入命令行输入python,如果出现如图信息,则安装成功:

 

关闭命令行。

 

(5)安装mingwlibpython。打开命令行后输入conda install mingw libpython即可,目前libpython已经支持python3.5了,就不用再配置python3.4的环境了。注意如果安装mingw速度很慢,则可ctl+c并退出命令行,再进入命令行修改Anaconda的镜像,这里推荐清华的镜像,方法为在命令行中输入:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

,之后再conda install mingw libpython即可。

之后到Anaconda3的安装目录中可以看到MinGW的文件夹,如图:

 

注:网上说需要把MinGW的路径加入到环境变量,其实不用,等会儿再theano的配置文件中标出MinGW的位置即可

 

(6)安装theano。首先打开命令行,输入conda install scipy,之后再输入pip install theano即可。(为什么要输入conda install scipy我也不明白,但是网上建议)。之后在个人主文件夹下新建一个“.theanorc.txt”的文档。个人主文件夹就是打开命令行后所显示的文件夹路径,比如我的就是C:\Users\15540

 

 

注意theano的配置文件为.theanorc.txt,注意前面那个点要有,并且文件名为.theanorc.txt是文件类型,不要弄错。打开.theanorc.txt写入以下信息:

[global]

openmp=False

device = gpu

optimizer_including=cudnn

floatX = float32

allow_input_downcast=True

[lib]

cnmem = 0.8

[blas]

ldflags=

[gcc]

cxxflags=-ID:\software\Anaconda3\MinGW

[nvcc]

flags = -LD:\software\Anaconda3\libs

compiler_bindir = D:\software\VS2013\VC\bin

fastmath = True

注意需要把cxxflags=-ID:\software\Anaconda3\MinGW换成你的Anaconda3MinGW的位置,flags = -LD:\software\Anaconda3\libs换为你的Anaconda3libs的位置,compiler_bindir = D:\software\VS2013\VC\bin换为你的VS2013VC\bin的位置;还有cnmem = 0.8这个网上说设为1,但是貌似有点问题,建议设为小于1的值,如我这里设为0.8 ,这就可以避免后面显示CNMEM is disabled了。

 

(7)更新cudnn文件,到网上搜索cudnn下载下来(到官网注册一下就可以下载了,官网网址为https://developer.nvidia.com/cudnn)。将下载来的文件解压,解压出cuda文件夹,里面包含3个文件夹,如图。将设三个文件夹替换掉系统里面的对应文件,进行覆盖替换即可,例如我的文件目录为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。覆盖掉后面导入theano时会就不会出现CuDNN not available提示了。

 

 

(8)测试theano。打开命令行,输入python,在输入import theano,如果出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 11: invalid continuation byte这种编码问题,这是因为掉用nvcc返回的字符串是使用的cwindows默认的默认编码,直接找到theano中对应的报错文件,把源码出错的地方改为 *.decode("GBK")就可以。比如我的是在theano下的__init__.py出现的编码问题,则修改为:

 

 

(如果出现上述错误,关闭命令行修改错误,重输一遍命令即可)出现以下画面则表示成功。

 

注:可以看到仍有warning,不过不影响使用,出现warning的原因主要是cuda-8对目前版本的theano支持不太好导致,不过相信以后更新的theano会解决这个问题,如果实在接受不了这个warning就安装cuda7.5,步骤一样

 

三.其他问题

1)不要在环境变量添加PYTHONPATH变量,否则容易在import theano后出现configparser找不到或没有这个组件这个问题(在我这里是这样的);

2)建议在安装完cuda后重启电脑;

3)如果在命令行输入命令后出现什么问题,建议修改完问题后重启命令行;

4)如果还有其他问题,试试重启电脑后在import theano,如果还有问题,一般就是配置文件.theanorc.txt的问题(我这个配置方式不一定百分之百的适合你),下面列出一些我参考的文章:

http://blog.csdn.net/u011821462/article/details/50145221

http://blog.csdn.net/stormragewang/article/details/51261465

http://blog.csdn.net/voidfaceless/article/details/53711550

 

posted @ 2016-12-23 17:16  贪吃的小狐狸  阅读(11912)  评论(2编辑  收藏  举报