文档章节

Win10 x64 下安装theano过程

qhxjtu
 qhxjtu
发布于 2017/06/20 01:03
字数 2514
阅读 201
收藏 1

安装环境

  • 电脑:Acer TravelMate TX50-G2
  • Windows版本:Windows 10 家庭中文版,64位操作系统,基于x64的处理器
  • 处理器:Inter(R) Core(TM) i5-7200U CPU@2.50GHz 2.70GHz
  • 显卡:NVIDA Geforce 940MX

安装步骤

第一步:VisualStudio安装

  • VisualStudio版本选择:VisualStudio版本我这里选择的是VS2012的(不要选择VS2015,具网上教程说明是VS2015不支持CUDA8.0,而我们接下来安装的CUDA我选择的是CUDA8.0,所以最好不要选择使用VS2015,可以使用VS2013或者VS2012),具体是从MSDNitellyou上下载下来的,下载下来的文件名称为:cn_visual_studio_ultimate_2012_x86_dvd_920954.iso
  • VisualStudio安装:我是将其安装在C盘上
  • VisualStudio激活:网上的教程是说要将其激活,但是我在安装完成后就已经是激活的状态了,很奇怪,不过没有影响,反正是能用

第二步:CUDA安装

  • CUDA支持检测:首先得看一下自己电脑的显卡是什么类型的,如果是A卡的话,是不能安装CUDA的,接下来的步骤就都不用看了;如果是N卡的话,去CUDA GPUs查看一下自己的显卡是不是支持CUDA

  • CUDA版本选择:如果自己电脑的显卡支持CUDA的话,可以去CUDA Toolkit Download选择下载相应的CUDA。我按照如下选择的,下载先来的文件名称是cuda_8.0.61_win10.exe

    • Operation System:Windows
    • Architecture:x86_64
    • Version:10
    • Install Type:exe(local)
  • CUDA安装:安装CUDA是要选择自定义安装,安装是选择全部功能(包括显卡驱动,我自己一开始没有选择安装显卡驱动,后面发现显卡驱动没了,就卸载了CUDA后重新安装了一遍,这个过程中就将所有内容都安装上,包括显卡驱动),不要精简安装,我自己没试过精简安装,但是具网上的教程,采用精简安装的话会出错。安装过程中安装位置我是采用默认位置,即安装在C:\Program Files\的相应位置,其他的应该就按部就班的点下一步,最后就安装好了CUDA

安装CUDA后不用自己配置系统环境变量,安装过程会自动配置的,安装完成后可以在cmd控制台命令行输入nvcc -V查看版本信息

第三步:Anaconda安装

由于一开始学习Python时,用的是Python3.6版本的,所以一开始我装的Anaconda版本是适用于Python3的,老是出错,后来在网上查阅了一些列的资料后发现Python3.5版本对GPU的支持是不太好的,总会显示GPU不能用,所以这里我后来就放弃了使用Python3.x版本的,而是改用Python2.7这个版本。同时,因为Anaconda里面自带了Python和上百个包,所以在安装Anaconda之前,可以先将电脑中的Python卸载掉(这个也是为了后面使用pip进行安装是可以不用去操心到底是在那一个Python上安装)

  • Anaconda版本选择:选择Anaconda4.1.1版本及其以下的系列,这里我采用的是Anaconda2-4.1.1-Windows-x86_64这一个版本。因为选择这个及其以下版本时,里面自带的Spyder是2系列的,不是3系列的,而3系列的Spyder总是不调用ipythonw.exe解释器,而是调用ipython.exe,这个会导致theano编译时总是弹窗nvcc.exe!

  • Anaconda安装:路径不要有空格,因为theano依赖的G++库不支持路径中有空格,我是将Anaconda安装在D:\Anaconda2这个路径。在安装过程中记得将添加路径选项选上。以我的安装路径为例,在安装完成之后在系统的环境变量中会出现C:\Anaconda2C:\Anaconda2\Scripts这两个路径(如果没有得手动添加)

  • 安装完Anaconda的后续操作:安装完Anaconda后,在cmd控制台命令行下输入conda install mingw libpython,将G++安装上。在安装完成之后,会在Anaconda安装路径下看到一个MinGW文件夹,以我的为例,会出现D:\Anaconda2\MinGW。然后将这两个路径添加到系统的环境变量:D:\Anaconda2\MinGW\binD:\Anaconda2\MinGW\x86_64-w64-mingw32\lib

    上述步骤就完成了Anaconda的安装,接下来就可以安装theano了

第四步:theano安装

  • theano安装-step1:直接在cmd控制台命令行下输入pip install theano

  • 注意:pip安装完成之后即可,不用安装网上的一些教程中说的添加如pythonpath = D:\Anaconda2\Lib\site-packages\theano这样的系统环境变量,这样子没什么用,而且会使得spyder启动时弹窗、kernal died等问题)

  • 关键点:由于theano现在的版本是0.9的某一版本,和原来的不一样,所以现在网上的大部分教程安装theano都只有直接安装theano-step1就完成了,其实现在这样子安装出错的,最后会出现You are tring to use the old GPU back-end这样子的错误。

  • theano安装-step2:在cmd控制台命令行下输入conda install pygpu theano。这样子安装pygpu这个库

    上述就完成了theano的安装

第五步:安装cudnn

  • 安装cudnn的原因:在这里如果不按照cudnn,只是安装CUDA的话,还是无法在运算时使用GPU,安装完cudnn后,就可以在计算神经网络是利用GPU进行运算了

  • cudnn版本选择:在NVIDIA官网上下载:NVIDIA cuDNN,这里下载前得先登录NVIDIA才能下载,只要注册一个帐号即可,还是比较方便的。这里我选择的版本是cudnn-8.0-win10-x64这一版本,下载的文件名为:cudnn-8.0-windows10-x64-v5.1.zip

  • cudnn安装:将下载的文件解压后,会出现三个子目录:binincludelib,我这里是将解压的目录放在D:\Program Files\cuda

    • 将相应的路径添加到系统环境变量中,这里添加的是D:\Program Files\cuda\binD:\Program Files\cuda\include这两个路径

    • 用VisualStudio2012新建一个CUDA项目,这里我是将项目名称命名为cudaProject,将项目存放的位置放在D:\Program Files\cuda\cudaProject这一位置。同时在VS中将Solution Configuration的内容选择为Release,将Platforms Solution的Platforms中选为x64

    • 项目属性/VC++ Directories/Include Directories中添加include的路径(如D:\Program Files\cuda\include)。注意这里是添加,就是在原来的里面添加进这些内容,不是将原来的替代掉

    • 项目属性/VC++ Directories/Libary Directories中添加lib\x64路径(如D:\Program Files\cuda\lib\x64)。注意,这里也是添加

    • 项目属性/Linker/Input/Additional Dependencies中添加cudnn.lib。这里也是添加

    • 项目属性/CUDA C|C++/Device/Code Generation中将sm_20改为sm_30或者更高的数值

    • kernel.cu文件中内容改为:

        #include <iostream>
        #include <cuda_runtime.h>
        #include <cudnn.h>
        using namespace std;
      
        void main(){
        cudnnHandle_t handle;
        cudnnStatus_t t = cudnnCreate(&handle);
        cout<< cudnnGetErrorString(t);
        getchar();
        }
      
    • 完成上述操作后,点击本地Windows调试器,可以得到结果:CUDNN_STATES_SUCCESS,表示安装成功了

  • 一些后续操作:将解压出来的三个子目录:binincludelib\x64中的内容分别添加进

    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64

第六步:配置.theanorc.txt

注意,这个文件的文件名最前面有一个英文的点,不要漏掉! 我的该文件中内容如下:

[global] 
openmp=False 
device = cuda 
floatX = float32 
allow_input_downcast=True 
cxx=D:\Anaconda2\Library\mingw-w64\bin\g++.exe
[blas] 
ldflags= 
[gcc] 
cxxflags=-ID:\Anaconda2\MinGW
[nvcc] 
flags = -LD:\Anaconda2\libs
compiler_bindir = C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin 
fastmath = True 
flags=-arch=sm_30
[dnn]
enabled = True
include_path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
library_path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64

第七步:解决import theano中出现的g++编译的问题

这个问题是因为采用直接pip install theano的缘故,解决方法如下:

  • 去github下载最新的theano的zip文件,下载地址为:Github/Theano。我下载下来的文件名为:Theano-master.zip
  • 解压下载后的文件,拷贝出里面的theano文件夹,替换原来在D:\Anaconda2\Lib\site-packages\theano这个文件夹,不用替换也行,合并也行(我就是采用合并的方法)。

整个方法中添加的系统环境变量有:

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp
 C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
 D:\Anaconda2
 D:\Anaconda2\Scripts
 D:\Anaconda2\MinGW\bin
 D:\Anaconda2\MinGW\x86_64-w64-mingw32\bin
 D:\Anaconda2\Library\mingw-w64\bin
 D:\Program Files\cuda\bin
 D:\Program Files\cuda\include
 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include

上面这些是我觉得应该是在这个过程中添加进来的,不一定是对的,反正记录在这,以防重新安装等情况,可以作为一个参考

额外安装内容:Keras

这个也是直接用pip进行安装的。安装完这个后可能运行一会儿后可能会出现I/O错误,解决方法为:

  • 在cmd控制台命令行中输入:conda install ipykernel。这样子就可以解决问题了

切换回CPU,不使用GPU结果对比

可以通过修改.theanorc.txt配置内容切换会使用CPU,而不是用GPU,配置内容为:

[blas]
ldflags =

[gcc]
cxxflags = -ID:\Anaconda2\MinGW\include

不过个人觉得不推荐,因为如果不使用GPU的话,可以在代码中去做调整,而不用去修改配置文件,这样子不仅麻烦,还容易出错。

使用GPU和CPU计算结果对比

采用网上的示例,计算相同的内容的,大概结果是采用CPU计算耗时为16s左右,而采用GPU计算耗时为0.8s左右。效果还是非常好的!!!

Reference

© 著作权归作者所有

共有 人打赏支持
qhxjtu
粉丝 2
博文 13
码字总数 14486
作品 0
西安
程序员
大白菜安装win10、win7手册

一、环境: 笔记本电脑:thinkpad e470c U盘:4G、usb 3.0 操作系统:win10家庭版 下载地址:http://www.itellyou.cn/ 选择“Windows 10 (Multiple Editions) (x64) - DVD (Chinese-Simplif...

Felixgzf
2017/04/23
0
0
在win10下安装eclipse

在win10下安装eclipse 原创 2017年06月02日 20:39:59 24343 今天换了新电脑,需要在win10中重新安装eclipse。 1、在官网下载jdk。目前最新版本为jdk8。 http://www.oracle.com/technetwork/...

linjin200
04/23
0
0
联想Yoga910重装win10系统

联想Yoga910重装win10系统 很多人买了联想yoga910后,都不是很喜欢自带的win10家庭,都是喜欢重装一下其他版本的win10,本人研究了一下,自己成功重装了win10专业版,在此分享一下需要重装系...

xiaoyong40
2017/06/11
0
0
如何将Anaconda(Win10)内安装的Keras后端改为TensorFlow/Theano?

1. 基于Anaconda安装Keras 更多安装方法可以参考:WIN10下使用Anaconda安装TensorFlow与OpenCV等库 导入Keras模块,显示目前使用theano为后端: 2. 修改后端Backend 目前网上大部分修改方法都...

DexterLei
2017/10/18
0
0
Ubuntu下解决拯救者笔记本无法使用无线网卡

#解决Ubuntu下无线网卡无法使用的问题 为了能够更快地跑完实验,刚刚换了台笔记本电脑,GTX960M的显卡,想着在theano下可以跑得更快一些。最初在win10下使用,安装 theano遇到了无数个坑。为...

KyJason
2016/07/28
281
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
30分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
30分钟前
15
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
31分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
41分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部