theano + gpu
Teano安装测试
1. Anaconda 安装
Anaconda是一个科学计算环境,自带的包管理器conda很强大。之所以选择它是因为它内置了python,以及numpy、scipy两个必要库和一些其他库,比起自己安装要省事。
首先下载Anaconda-2.1.0-Windows-x86_64.exe 安装选择默认配置即可,下砸地址。安装成功后效果如下:
这里有Anaconda管理器(Anaconda Command Prompt),输入conda list来查看已经安装的库。我们可以看到Anaconda已经安装了numpy, nose, pip, python, scipy, mingw等等
PS:
2.卸载之前版本
因为Anaconda里边包含了python,所以需要在windows环境变量中找到Python的环境变量,删除它。或者直接将之前单独安装的python等统统卸载掉。这一步可以在安装Anaconda之前进行。
3. 安装theano
有如下两种安装方法:
1)打开CMD或Anaconda命令窗口,输入 pip install theano。 回车后就是赏心悦目的下载进度条,这个很小,所以安装的比较快。
2)手动下载theano的zip文件
下载地址:https://github.com/Theano/Theano ,解压到XXX/Anaconda/Lib/site-packages/theano(文件里面有个theano的文件夹,拿出来放在E:/Anaconda/Lib/site-packages里面)目录下。
添加环境变量: path: XXX/Anaconda/MinGW/bin;E:/Anaconda/MinGW/x86_64-w64-mingw32/lib;
(32bit E:/Anaconda/MinGW/i686-w64-mingw32/lib;)
新建环境变量: PYTHONPATH: E:/Anaconda/Lib/site-packages/theano;
PS:有些Anaconda版本底下没有MinGW包,这时可以:CMD输入 conda install mingw libpython, MinGW会自动装到Anaconda下。
4. 测试Theano
在cmd中,输入python 进入到python环境下(PS:此时调用的应该是Anaconda自带的Python,check一下输出路径),然后先输入import theano回车,需要等一段时间,不输出error则说明安装成功。
GPU加速配置
对于用GPU的人(要安装相应的CUDA版本,比如说我用的64位的python环境(Anaconda 64位),CUDA的版本也是64位的)
CUDA的 配置可参考 http://blog.csdn.net/yeyang911/article/details/17450963
1. 配置 .theanorc.txt文件
[global]
openmp=False
device = gpu
floatX = float32
allow_input_downcast=True
[blas]
ldflags=
[gcc]
cxxflags=-IE:\Anaconda\MinGW
[nvcc]
flags = -LE:\Anaconda\libs #此处是Anaconda的路径
compiler_bindir = E:\VS2010\VC\bin #此处一定要和你安装的VS的路径保持一致,如果是默认安装的,应该是C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin
fastmath = True
2. 测试GPU加速
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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' ) |
参考:http://blog.csdn.net/niuwei22007/article/details/47684673
http://blog.sina.com.cn/s/blog_990865340101hvuq.html