因为业务需要,需要安装一个theano GPU版本+keras1.2环境来运行代码。经过百度搜索和多次实验,终于成功地完成安装和测试。
1、首先要安装好Anaconda。
接下来创建一个虚拟环境keras12
2、conda create –n keras12 python=2.7
3、激活keras12虚拟环境
activate keras12
4、使用conda命令安装theano gpu版本
conda install theano pygpu
5、下载keras1.22版本并安装
https://github.com/fchollet/keras/releases
下载1.2.2版本
解压到硬盘的某个目录下,使用python setup.py install
安装Keras1.22版本
6、把keras默认后台配置修改成theano
在C:\Users\Administrator\.keras目录下
修改keras.json。把里面的tensorflow相关的信息换成theano的。
{
"floatx": "float32",
"backend": "theano",
"epsilon": 1e-07,
"image_dim_ordering": "th"
}
修改C:\Users\Administrator\.theanorc.txt。把device选项设置成gpu
[global]
device = gpu
#device = cpu
floatX = float32
openmp = False
allow_input_downcast=True
#optimizer_including=cudnn
[blas]
ldflags =
[gcc]
rem cxxflags = -IE:\common\mingw-w64\i686\mingw32\i686-w64-mingw32\include
[nvcc]
fastmath = True
flags = -LE:\Anaconda2\envs\keras1\libs
compiler_bindir = F:/Program Files (x86)/Microsoft Visual Studio13/VC/bin/x86_amd64
[lib]
cnmem = 0.8
如何配置CUDNN:
7、测试。
进入python环境,import keras
如果一切正常,那就安装好了。我自己跑了一个使用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)) 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" % (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')
只用CPU,程序要跑12秒多。使用GPU加速,只需要0.25秒。还行。