在Ubuntu16.0+cuda8.0下安装Theano。使用系统自带的python=2.7版本。最需要注意的是Theano的版本,切记不要选择Theano的最新版本(Theano-1.0),因为Theano从0.9版本开始使用GPUBackend的安装方法,需要安装pygpu,并且如果自己的显卡计算能力低于3.0的话,device=cuda。同时,安装pygpu的话会有很多兼容性问题,很容易出错。所以在这里选择Theano-0.8的稳定版本。
1.安装各种依赖包:
sudo apt-get update
sudo apt-getinstall gfortran 后面编译会用到
sudo apt-getinstall libopenblas-dev
sudo apt-getinstall liblapack-dev
sudo apt-getinstall libatlas-base-dev
使用pip安装numpy和scipy
sudo apt-getinstall python-pip
sudo pipinstall numpy
测试numpy,测试通过才能进行下一步,测试不通过重新安装
python -c “importnumpy;numpy.test()”
sudo pipinstall scipy
python -c “importscipy;scipy.test()”
在安装theano之前,还要安装
sudo apt-getinstall python-dev python-nose g++ git
安装theano:sudo pipinstall theano==0.8
测试theano在gpu下运行
2.编辑theano配置文件
sudo gedit~/.theanorc
[global]
floatX=float32
device=gpu
[cuda]
root=/usr/local/cuda-8.0
然后运行官方测试gpu的例子:
from theano importfunction, config, shared, tensor
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([],tensor.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i inrange(iters):
r = f()
t1 = time.time()
print("Looping%d times took %f seconds" % (iters, t1 - t0))
print("Resultis %s" % (r,))
ifnumpy.any([isinstance(x.op, tensor.Elemwise) and
('Gpu' not intype(x.op).__name__)
for x inf.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
至此,theano安装成功。theano.test()测试的话,如果有错可以忽略。