文档章节

Win10 x64 下安装theano过程

qhxjtu
 qhxjtu
发布于 2017/06/20 01:03
字数 2514
阅读 364
收藏 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
2018/04/23
0
0
联想Yoga910重装win10系统

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

xiaoyong40
2017/06/11
0
0
xps 9550 uefi 安装操作系统详解

首先用工具制作原版win10 ios U盘启动系统 (分区格式为必须为fat32 默认支持UEFI模式引导) BIOS 中设置仅UEFI启动,分区GPT格式 MBR 文件系统不支持UEFI 。 GPT格式对应UEFI启动。 最重要的...

segastar660
2017/02/24
0
0
Win10 + Caffe + CPU + MATLAB (包括各种问题详细解决)(二) —— MATLAB 端设置

这里介绍一下 Win10 下,如何搭建 Caffe,仅有 CPU。因为我需要用 MATLAB 调试,所以需要对 Caffe 做关于 MATLAB 的配置。很多博客都写了有关这方面的配置过程,写的也很好,但对于我这种初学...

u014546828
2018/05/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 我想过年请假提前回家两天

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享王力宏的单曲《爱错》 《爱错》- 王力宏 手机党少年们想听歌,请使劲儿戳(这里) @Caremorele :这几天起床有点...

小小编辑
11分钟前
3
0
Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
2
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部