win7(64bit)利用anaconda进行theano 0.7.0的安装(anaconda+theano+cuda+vs2010编程环境搭建)

最近开始学习deepLearning的东东,由于之前的工作都是在windows下完成,就没打算换系统。于是关于caffe还是直接弃疗了。安装了好几天,各种网上搜资料。然并软。。。让我哭会儿。特别留念。以祭奠我苦闷的好多天。

系统环境:
windows7(64bit)

官网教程:http://deeplearning.net/software/theano/install_windows.html

写在前面:

    Anaconda(之所以选择它是因为它内置了python,以及numpy、scipy两个必要库和一些其他库,比起自己安装要省事。至于版本随便选择了,如果想安装python3.4就下载对应的Anaconda3。)
    vs2010(08不能再编译通过64位的程序,貌似网上好些说12也是可以的,但至少我尝试过后,崩掉了。)
    cuda(选的cuda5.5,当时看的官网的推荐,也就懒得再下载更新的了)
    gpu(GeForce GTX 650 实验室表示据说当年很牛。。。当年/(ㄒoㄒ)/~~

outLine:
0.cuda5.5+VS2010安装
1.安装anconda
2.安装MinGW
3.环境配置
4.安装theano
5.安装过程中的问题
6.安装结束以后的问题
7.参考的博客和讨论帖


0.cuda5.5+VS2012教程

重要的事要说三遍(先装VS,先装VS,先装VS)
教程
根据教程部分安装完成以后,可以尝试打开C:\cuda\cudasdk\1_Utilities\bandwidthTest下2010的sln文件,分别尝试在win32和x64位平台下进行编译运行,都通过以后可以进行下一步了呦。


1 安装Anaconda

Anaconda包含了Theano所需的各种Python库,使用Anaconda来安装Python环境的确非常方便(也试过winPython,但是奔溃了)。
到Anoconda网站下载Anaconda2-2.4.0-Windows-x86_64.exe,貌似Anaconda-2.之前的版本是带MinGW环境的,之后就不带MinGW了。
anaconda的位数要跟你的cuda版本一样,我这里选择的都是64 bit的
安装目录我用的默认的 C:\Anaconda 。中间会有360拦截,全部允许即可。安装的时候勾选把Anaconda加到环境变量中。

安装完检查一下,打开cmd命令行:
这里写图片描述
装完以后别着急下一步:

**验证BLAS是否安装成功**

由于numpy是依赖BLAS的,如果BLAS没有安装成功,虽然numpy亦可以安装,但是无法使用BLAS的加速。验证numpy是否成功依赖BLAS编译:

python

>>> import numpy 
>>> id(numpy.dot) == id(numpy.core.multiarray.dot) 
False

结果为False表示成功使用BLAS加速,如果是Ture则表示用的是python的实现,没有加速。
有一次装完的确出了这样的状况。
状况不解决的话,之后theano库跑一些例子会爆类似cannot find -lf77blas-lcblas-latlas的错误

简单处理:重装
也可以考虑MKL(收费的)和OpenBLAS(都试了一下,后来又重装了一次)。
这里给出两个库的一些安装方面的博客和讨论帖:
http://ijiaer.com/python-with-mkl-hpc/(mkl)
https://www.kaggle.com/c/otto-group-product-classification-challenge/forums/t/13973/a-few-tips-to-install-theano-on-windows-64-bits/93135(OpenBLAS)


2.安装MingW
其实就像前面说的,anaconda 2.之前的版本是内置了MinGW的,但如果你用的版本比较新,anaconda是没有自带的(查看C:\Anaconda下有无MinGW目录),那怎嘛办?
好多网上的教程都说自己去下载,然后手动安装。这个我不想谈(都是泪)
作为一个职业懒人,一个满满的职业操守的懒人。我想说,其实一个操作语句加简单配置就好了。
安装方法:
1. 打开CMD(注意是windows命令提示符,并不是进入到python环境下,否则会提示语法错误,因为conda命令就是在windows下面执行的。);
2. 输入conda install mingw libpython,然后回车,会出现安装进度,稍等片刻即可安装完毕。此时就有C:\Anaconda\MinGw目录了。
3. 然后你只需要在你的系统环境变量里面的path中加入 C:\Anaconda\MinGW\bin;C:\Anaconda\MinGW\x86_64-w64-mingw32\lib即可。
可在windows命令行中输入g++ -v来查看是否安装成功:
这里写图片描述


3.环境配置
1. 编辑用户变量中的path变量,在后边追加C:\Anaconda;C:\Anaconda\Scripts; 不要漏掉分号,此处需要根据自己的安装目录填写。
2. 在系统变量中新建变量PYTHONPATH,变量值为C:\Anaconda\Lib\site-packages\theano; ,此处就是指明安装的theano的目录是哪,这里的theano我们会在后面安装,正常安装的默认路径就是这个。
3. 打开cmd,会看到窗口里边有个路径,我的是C:\Users\FYB>,根据自己的路径,找到对应的目录,在该目录下新建一个文本文档.theanorc.txt (注意有两个“.”),编辑它,写入以下内容:
[global]
openmp=False
[blas]
ldflags=
[gcc]
cxxflags=-I*C:\Anaconda\MinGW*
其中斜体字部分是你安装的Anaconda的路径,一定不要弄错。否则找不到MinGw。

据说是要重启一下的,然而我懒,所以并没有。


4.安装theano
不需要手动下载zip等压缩包,直接用命令安装最简单。
1. 打开CMD,方法和安装MinGw一样,不要进入python。
2. 输入pip install theano,回车后就是赏心悦目的下载进度条,这个很小,所以安装的比较快。
3. 在cmd中,输入python 进入到python环境下,然后先输入import theano回车,需要等一段时间。
然后什么也没有输出,没有报错。
接下来不需要theano.test(),因为没有配置cuda,所以肯定会报错。
不过这个时候,你可以去这个网址http://deeplearning.net/software/theano/tutorial/adding.html
如果到这里你都没有问题的话,这里的第一个小程序是肯定能跑起来的。

好了,我们可以接下来的gpu配置了:


在完成第0步的cuda和VS2010配置以后,只需要修改之前的.theanorc.txt 即可:
[global]
openmp=False
device = gpu
floatX=float32
allow_input_downcast=True

[blas]
ldflags=

[gcc]
cxxflags=-IC:\Anaconda2\MinGW

[nvcc]
flags = -LC:\Anaconda2\libs #此处是Anaconda的路径
compiler_bindir = C: Files (x86)\MVS10.0\VC\bin#此处一定要和你安装的VS的路径保持一致,如果是默认安装的,应该是C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin
fastmath = True

此时完成配置以后,再打开CMD
这里写图片描述

如果到这里都没有报什么错误,那么恭喜你。

5.安装过程中的问题

1.在安装CUDA之前,先进行VS的安装,因为没安装 VS 可能会导致CUDA中的整个Samples和Toolkit安装不成功。

2.安装theano结束,import theano以后直接报错DLL load failed:%1 is not valid win32 程序,这个在我尝试多个版本的anaconda跟winPython以后一存在,网上表示是MinGW配置错误。但即使我下载自带MinGW的老版本anaconda,依然爆错。但在我重装了VS2010以后,神奇消失,强烈建议安装英文版的VS2010 pro,VS Express并没有64位编译器,而SDK也可能有问题(当然如果没问题更好).

3.在验证cuda5.5+VS2012配置的时候,打开sln文件,vs提示:说在这个目录下”C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations”找不到CUDA 5.5.props。经过搜索,发现在D:\NVIDIA\CUDA\CUDAToolkit\extras\visual_studio_integration\MSBuildExtensions目录下有这个文件,于是把这个目录下的所有文件都拷到VS的BuildCustomizations目录下。

这样总算可以完整编译bandwidthTest工程,x64和win32平台都是ok的。

4.很多娃娃在安装theano的时候是下载了theano的msi安装包直接进行的,但有一部分出现问题:

其实这个msi无非就是做了这几件事

把MinGW的dll拷贝到Anaconda目录,无非就是添加到path
pip install theano
建立配置文件.theanorc.txt(对GPU加速有用),一般都在C:/User/[YOUR NAME]/,在里面写上
[global]
openmp=False

[blas]
ldflags=

这样就可以用import theano进行相关的实现。

4.在theano gpu配置部分,如果你的flags路径出现了空格可能会报错,强烈建议路径中不要出现空格。

5.theano的测试过程中多次出现overriding killed的情况,我这里出现的原因是配置文件中的路径填写错误。

本来到这里应该已经结束了。。。但安装完成以后,的确又处理了一堆幺蛾子事。

6.安装结束以后的问题

这里已经无关乎安装过程的问题了,所以写在了这里。

1.theano测试部分出现提示:ValueError during graph optimization - “Cannot construct a ufunc with more than 32 operands (requested number were: inputs = 34 and outputs = 1)”
经google查证,貌似是一个版本问题:
https://github.com/Theano/Theano/issues/3052
numpy 1.10.普遍出现该问题。
一种解决方案:downGrade

CMD
conda install numpy==1.9.2
将numpy降级,再次之后,你需要把所有对numpy有依赖的库全部降级(如:scipy,pandas)
降级后测试通过。

2.利用自带的spyder进行代码编写。打开直接爆了好吗。
CMD
spyder
ERROR:Numpy.dtype has the wrong size, try recompiling
经google查证,貌似是由于低版本的numpy跟高版本的numpy同时存在的原因。
可尝试:
利用pip来安装numpy(如果该版本存在,不会做出处理)

pip install numpy==1.9.2
Requirement already satisfied (use --upgrade to upgrade): numpy==1.9.2 in /Library/Python/2.7/site-packages
Cleaning up...

在python中查看numpy的信息

$ python
Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/__init__.pyc'
>>> numpy.version.version
'1.8.0rc1'

移除掉不想要的版本即可。

3.spyder打开后尝试了简单的运行,发现依然
ERROR:Numpy.dtype has the wrong size, try recompiling
最终解决方案:
全部模块还原到初始版本,删除theano-0.7.0.dist-info文件夹,修改theano/tensor/elemwise.py文件
这里写图片描述
解决方案链接

7.参考的博客和讨论帖
感谢前辈的付出。
https://github.com/zzbased/memo/blob/master/anaconda+theano+cuda+vs2012%E7%BC%96%E7%A8%8B%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md
http://ijiaer.com/config-theano-with-gpu-win7-x64/
http://ijiaer.com/python-with-mkl-hpc/
https://www.kaggle.com/c/otto-group-product-classification-challenge/forums/t/13973/a-few-tips-to-install-theano-on-windows-64-bits/93135
http://blog.csdn.net/yeyang911/article/details/16357133
http://blog.csdn.net/yeyang911/article/details/17450963
http://blog.csdn.net/niuwei22007/article/details/47684673
http://stackoverflow.com/questions/26067692/numpy-dtype-has-the-wrong-size-try-recompiling
https://github.com/Theano/Theano/issues/3052
https://groups.google.com/forum/embed/#!topic/theano-users/CuUDobg8XSs
https://github.com/Theano/Theano/commit/bdcb752aa9abcaf8a7fb1e8e56d981e9bc151058

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值