说明:
利用Putty 通过终端远程在服务器上安装 theano+lassagne
linux服务器上之前已经配置过 anoconda CUDA驱动 cudnn
一 、进入anoconda并新建一个虚拟环境
由于theano官网 http://deeplearning.net/software/theano/install_ubuntu.html
说明其适应的是python2.7~python3.5,对于numpy等版本也有要求,所以最后开一个虚拟环境安装。
终端输入:
#进入conda
conda
#如果是Windows系统可以直接在anaconda终端输入下面的东西。
#创建虚拟环境
conda create --name theano python=2.7
二、在虚拟环境下安装theano lasagne
终端输入:
#进入theano环境
conda activate theano
#安装theano
pip install --upgrade https://github.com/Theano/Theano/archive/master.zip
#安装lasagne
pip install --upgrade https://github.com/Lasagne/Lasagne/archive/master.zip
#此时可以进入python环境测试一下
#继续在终端输入:
python
import theano
import lasagne
如果可以import就说明安装成功。
此时默认是CPU版本。
需要GPU的可以继续配置。
三、GPU配置
如果之前电脑没有配置过显卡驱动,CUDA,以及 cudnn,需要配置一下。
#查看电脑显卡配置
lspci -nnk | grep -i nvidia
#查看驱动安装信息。如果有显示,则说明驱动已经安装,否则需要安装驱动。
nvidia-smi
#查看CUDA版本。如果没有显示,说明未安装,需要安装。
cat /usr/local/cuda/version.txt
#查看cudnn版本。未显示则需要安装。
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
查看显卡配置之后,可以下载相应驱动。显卡驱动下载见官网https://www.geforce.com/drivers
下载对应版本后,可以参考 https://onlycaptain.github.io/2018/08/18/Ubuntu%E4%B8%8BNvidia%E9%A9%B1%E5%8A%A8%E5%AE%89%E8%A3%85/ 进行安装与避雷。
CUDA与cudnn配置可以参考 https://blog.csdn.net/allenlzcoder/article/details/78702279
如果上述安装成功,则可以继续下一步。
需要在根目录下 寻找 .theanorc文件,并将下文复制进去。
[global]
device = cuda
floatX = float32
找了很久,都没有找到 .theanorc文件
通过终端
find / -name '.theanorc'
也木有找到,折腾了好久!
于是直接在根目录下创建了一个命名为 .theanorc 文件,然后竟然成功了.....
后来参考官网,发现就是要直接自己创建的....
四、GPU测试
from theano import function, 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).transfer(None))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (numpy.asarray(r),))
if numpy.any([isinstance(x.op, tensor.Elemwise) and
('Gpu' not in type(x.op).__name__)
for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
如果输出的是 Used the gpu,就说明对了。
如果出错,有一个可能就是 numpy版本不匹配,需要更换 NumPy >= 1.9.1 <= 1.12,pygpu>0.7
pip install numpy==1.12.1
pip install pygpu=0.7