问题描述:
运行一个较大的程序是,使用了theano-gpu。同时,使用nvidia-smi进行检测,发现这个大程序,的确调用gpu成功。但是,在使用import的时候,发现运行报错,报错信息如下。
>>> import theano
ERROR (theano.gpuarray): Could not initialize pygpu, support disabled
Traceback (most recent call last):
File "/home/zoe_env/anaconda2/lib/python2.7/site-packages/theano/gpuarray/__init__.py", line 227, in <module>
use(config.device)
File "/home/zoe_env/anaconda2/lib/python2.7/site-packages/theano/gpuarray/__init__.py", line 214, in use
init_dev(device, preallocate=preallocate)
File "/home/zoe_env/anaconda2/lib/python2.7/site-packages/theano/gpuarray/__init__.py", line 99, in init_dev
**args)
File "pygpu/gpuarray.pyx", line 658, in pygpu.gpuarray.init
File "pygpu/gpuarray.pyx", line 569, in pygpu.gpuarray.pygpu_init
ValueError: invalid literal for int() with base 10: '*'
解决步骤:
(1)有一个程序可以调用theano-gpu,则说明:在本台服务器的环境下,该gpu的安装成功
(2)可能是在调用pygpu的时候出现问题
使用THEANO_FLAGS=mode=FAST_RUN,device=cuda,floatX=float32 python theano-test.py
成功,则更加确定是在.theanorc
文件中进行公共设置的时候出现了问题
(3)查看.theanorc
文件
[global]
device=cuda*
floatX=float32
root=/usr/local/cuda-8.0 #cuda-8.0,视个人情况而定
[nvcc]
fastmath = True
[blas]
ldflags = -lopenblas
[cuda]
root = /usr/local/cuda-8.0
根据ValueError: invalid literal for int() with base 10: '*'
,提示,将cuda*
更改为cuda
,再次import theano
运行,报错消失。