Win10环境下安装theano并配置GPU详细教程
一.软件和环境
(1)安装日期2016/12/23;
(2)原材料VS2013,cuda-8.0(最好下载cuda7.5,目前theano-0.8.2对cuda-8支持不是很好),Anaconda3-4.2.0(64位);
(3)环境为win10.
二.安装步骤
(1)安装VS2013。这个没什么可说的,下载64位版本后就是一路下一步、确定就行,记住安装位置就可以了,我这里的安装目录是D:\software\VS2013:

接着右键我的电脑-》属性-》高级系统设置-》环境变量,之后编辑系统变量Path,加入两个路径D:\software\VS2013\VC\bin和D:\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_PATH和CUDA_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\Anaconda3,D:\software\Anaconda3\Scripts和D:\software\Anaconda3\Library\bin,点击确定。如图:

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

关闭命令行。
(5)安装mingw和libpython。打开命令行后输入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换成你的Anaconda3中MinGW的位置,flags = -LD:\software\Anaconda3\libs换为你的Anaconda3中libs的位置,compiler_bindir = D:\software\VS2013\VC\bin换为你的VS2013中VC\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
Win10环境下安装theano并配置GPU详细教程的更多相关文章
- 个人亲测,在win10系统下安装多实例mysql8.0详细教程
由于公司的新项目需要导入sql脚本,需要更高版本的mysql数据库,原来的数据库我也不想删除和升级,因此安装了第二个mysql8的实例,废话不多说,步骤如下: 1.下载mysqlGPL版本,我下载的版 ...
- YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台
手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...
- win10环境下安装Ubantu双系统(超详解)
win10环境下安装Ubantu双系统 1.准备工作: 先去ubantu官网(https://www.ubuntu.com/download)去下载ubantu镜像.根据自己的实际情况选择32位的或者 ...
- Java入门——在Linux环境下安装JDK并配置环境变量
Java入门——在Linux环境下安装JDK并配置环境变量 摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置. 使用已下载的压缩包进行安装 下载并解压 在Java的官网 ...
- Linux 下非 root 用户安装 theano(配置 GPU)
非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...
- 【Docker】win10环境下安装Docker
一.进入Docker官网 首先先到Docker官网下载最新官方Docker for Windows:Docker下载 在官网内可以查看到Docker的开发文档. 根据官网提示,Windows环境下下载 ...
- Win10环境下安装压缩包版本MySQL-8.0.13
准备工作 系统环境:Windows 10 1803版本: 压缩包:MySQL-8.0.13 Windows zip包下载: 安装过程 1. 加载安装包到你的安装目录 将下载的MySQL压缩包解压并移到 ...
- 在win10环境下安装eclipse mars版本
1下载eclipse软件.下载地址:http://www.eclipse.org/downloads/ 不要下载.exe文件.直接下载安装包,下载对应的安装包,我下载的是这个Eclipse IDE f ...
- .NetCore Linux环境下安装InfluxDB以及配置设置
Linux下安装 确定需要安装的版本,我的linux是干净的,所以我需要先安装wget yum -y install wget 下载安装 wget https://dl.influxdata.com/ ...
随机推荐
- iOS 和 Android 测试托管平台 FIR.im 的注册与常用功能
FIR.im 作为专业的 iOS 和 Android 测试包发布网站, 注册超简单,支持输入网址直接下载和二维码扫描下载.功能类似 TestFlight ,但又比它强大,支持游客访问密码,iOS 和 ...
- WPF入门教程系列三——Application介绍(续)
接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...
- 每天一个linux命令(50):crontab命令
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...
- struts1的一些基本用法和操作
入职两周了,项目是用struts1+ibatis框架搭建的,数据库是oracle,其他还行,关键是struts1之前没用用过,所以只好在网上狂查文档,最后大致整理了一些struts1的基本使用方法. ...
- 分享10条Visual Studio 2012的开发使用技巧
使用Visual Studio 2012有一段时间了,并不是追赶潮流,而是被逼迫无可奈何.客户要求的ASP.NET MVC 4的项目,要用.NET 4.5来运行.经过一段时间的摸索,得到一点经验和体会 ...
- Android线程处理
对JAVA的线程相信大家都有一定的认识,本篇就让我们一起探讨一下Android中的线程问题,对于线程和进程的区别我就不再赘述,有兴趣的小童鞋可以百度一下,讲解的非常详细,相信大家经常可以听到关于线程的 ...
- tomcat 容器生命周期lifecycle
1.复习java的事件机制 java事件机制包括三个部分:事件.事件监听器.事件源. 事件:一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息. 事件监听器:实 ...
- jQuery判断当前元素显示状态并控制元素的显示与隐藏
1.jQuery判断一个元素当前状态是显示还是隐藏 $("#id").is(':visible'); //true为显示,false为隐藏 $("#id") ...
- Hadoop阅读笔记(七)——代理模式
关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...
- HTML Inspector – 帮助你编写高质量的 HTML 代码
HTML Inspector 是一款代码质量检测工具,帮助你编写更优秀的 HTML 代码.HTML Inspector 使用 JavaScript 编写,运行在浏览器中,是最好的 HTML 代码检测工 ...