在安装过Anaconda3的环境下想利用oython2.7.13配置Theano环境,比较简单的方法是在Anaconda3里面另开一个python环境,然后在Pycharm里面切换python.exe的环境即可,这里可以参考我之前写过的在Anaconda下实现Python2.X与Python3.X共存 ,配置环境可以参考我之前的一篇总结Anaconda下安装keras 配置与pycharm运行demo(windows版本) 。
这里主要想总结一下我配置GPU加速的Teano环境的过程。当然如果想配置GPU加速的Tensorflow环境可以参考我的这篇文章。
这里我想说Theano的配置不像Tensorflow需要下载对应的GPU版本,我们在配置好Theano环境之后,只要 C:\Users\你的用户名 的路径下添加
.theanorc.txt 文件。
这里给出我的配置文件,里面的路径需要换成对应的路径,这里不多说。也可以参考文章后面的参考资料2的文章。
[global]
openmp=False
device = gpu
floatX = float32
base_compiler = C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
allow_input_downcast=True
[lib]
cnmem = 0.75
[blas]
ldflags=
[gcc]
cxxflags=-IC:\Users\lyh\Anaconda2\MinGW
[nvcc]
fastmath = True
flags = -LC:\Users\lyh\Anaconda2\libs
compiler_bindir = C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
flags = -arch=sm_30
如果在上述文件配置上遇到问题可以参考我下面的文章
Theano: CNMeM is disabled, CuDNN not available
http://blog.csdn.net/johinieli/article/details/77100240
Failed to get the number of CUDA devices: CUDA driver version is insufficient for CUDA runtime versi
http://blog.csdn.net/johinieli/article/details/77100091
python - Theano: Initialisation of device gpu failed! Reason=CNMEM_STATUS_OUT_OF_MEMORY
http://blog.csdn.net/johinieli/article/details/77100427
NameError: the name CVM is not defined
http://blog.csdn.net/johinieli/article/details/78137008
这里还给出Theano的GPU环境测试程序:
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 %f seconds" % (iters, t1 - t0))
print("Result is %s" % (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')
如果打印出了Used the gpu说明环境配置成功!
还有一个十分关键的地方,我已经被坑了好多次:
上述测试程序,还有其它自己编写的程序一定要注意命名!
不要使用关键字命名代码,否则程序报错,然后很难根据错误信息找到解决方法。笔者小白就是花了大量的时间在这个上面。
笔者小白在这个问题上面还碰到了,在Ananconda Prompt里面import theano正确,但是在pycharm里面import theano 报错,关键是配置的python.exe的路径也是正确的。在折腾了一大圈之后,发现还是测试代码文件命名的问题。
参考资料:
1、http://blog.csdn.net/goodshot/article/details/54945588 2017.9.29
2、http://blog.csdn.net/qq_30507287/article/details/70767017 2017.9.29