环境配置所需安装包

安装步骤

文件在在完毕就可以安装啦

因为cuda的GPU加速依赖vs2008的C++编译器,官方文档中推荐下载vs2010,其中包含2008,并且发现其中包含x86和x64的编译器,所以虽然下载的是32位的但是其中包含C++64位的编译器,放心使用。

1. 安装vs2010,在安装过程中可以只安装C++的编译器,其他的C#什么的可以将打钩去掉,无需安装。如果出现安装失败,请查看本机是否已经安装了C++2010的相关版本,将其卸载后重新安装就可以了。

2. 安装CUDA,官方文档中推荐下载的是5.5版本,因为本机的N显卡并非非常高级,所以按照推荐下载。若读者的显卡为N卡较新推出,可以根据需要安装更高版本的CUDA。直接安装就可以,最好采用默认的安装位置,安装完毕后测试一下nvcc -V:

通过lspci id查看GPU设备型号 查看gpu配置_windows


也可以打开NVIDIA CUDA Samples Browser,在search中输入【smoke】,运行程序

通过lspci id查看GPU设备型号 查看gpu配置_gpu_02


运行效果如图:

通过lspci id查看GPU设备型号 查看gpu配置_theano_03


到此说明CUDA安装成功。

3. 下面安装 Microsoft Visual C++ Compiler for Python 2.7,使用管理员运行cmd程序,找到VCForPython2.7目录,输入:msiexec /i VCForPython27.msi ALLUSERS=1,文件会安装到C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0.

4. 当CUDA安装成功后,vs2010是可以卸载的。这个随便

5. 这步最重要,这步最重要,这步最重要。因为window和linux不同,theano代码的编译需要使用到GCC环境,但是window下并没有,所以就麻烦了。推荐直接安装anaconda2.7版本,下载直接安装,切记安装路径中不要有空格,不要有空格,不要有空格。这样python环境安装完成,这时可以看到环境变量PATH多了几个路径,不要惊慌,不要害怕,说明一切正常。测试一下,cmd中输入conda或python,conda会显示该命令的帮助信息,python则进入python编程环境。

6. 安装GCC环境,直接运行conda install mingw libpython,在cmd中直接输入就可以了,速度可能会比较慢,如果能就翻一下。如果中途Ctrl+C中断或网络问题中断,下次安装可能会产生错误”lockerror”,该错误多为中途中断产生。解决办法conda clean --lock,再次安装就可以啦。

7. 安装theano,直接运行pip install theano,搞定!

8. 配置环境

- 添加

PYTHON_PATH=E:\Anaconda2\Lib\site-packages\theano

根据自己环境修改。

- 添加theano的配置文件——.theanorc.txt,注意前面有个点。打开cmd不(需要管理员)

通过lspci id查看GPU设备型号 查看gpu配置_CUDA_04


图中标红的位置就是添加文件的地址。

- 添加文件内容

[global] 
openmp=False 
[blas] 
ldflags= 
[gcc] 
cxxflags=-IE:\Anaconda2\MinGW

其中cxxflags为anaconda路径
到此,theano的cpu版本已经配置完毕。
9. 测试一下

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print (f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print ('Looping %d times took' % iters, t1 - t0, 'seconds')
print ('Result is', r)
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print ('Used the cpu')
else:
    print ('Used the gpu')

运行产生CPU的输出。
或者
在python环境中输入

import theano
theano.test()

如果没有什么错误,说明搞定。其中theano.test() 会产生大量的输出信息,影响我们观察,推荐使用第一种。
以上所以得配置正确后,说明一切正常,下面就可以将配置改变成GPU的。
10. GPU配置
同样是配置刚才的.theanorc.txt文件,将内容修改为:

[global]
openmp = False
device = gpu
floatX = float32
allow_input_downcast=True
[blas]
ldflags =
[gcc]
cxxflags=-IE:\Anaconda2\MinGW
[nvcc]
flags = -LE:\Anaconda2\libs
compiler_bindir = F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
fastmath = True

路径的内容,根据自己的安装做相应的修改。
再次测试一下,将刚才的测试代码再次运行,运行输出“Used the gpu”大功告成。