如何在Windows 7 64位系统上使用Theano设置cuDNN

10

我已经安装了Theano框架并在我的机器上启用了CUDA,但是当我在Python控制台中输入"import theano"时,我收到了以下信息:

>>> import theano
Using gpu device 0: GeForce GTX 950 (CNMeM is disabled, CuDNN not available)

现在出现了"CuDNN不可用"的情况,我从Nvidia网站下载了cuDnn。我还更新了环境中的"path",并在".theanorc.txt"配置文件中添加了"optimizer_including=cudnn"。

然后,我再次尝试,但是失败了,出现以下错误:

>>> import theano
Using gpu device 0: GeForce GTX 950 (CNMeM is disabled, CuDNN not available)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda2\lib\site-packages\theano\__init__.py", line 111, in <module>
    theano.sandbox.cuda.tests.test_driver.test_nvidia_driver1()
  File "C:\Anaconda2\lib\site-packages\theano\sandbox\cuda\tests\test_driver.py", line 31, in test_nvidia_driver1
    profile=False)
  File "C:\Anaconda2\lib\site-packages\theano\compile\function.py", line 320, in function
    output_keys=output_keys)
  File "C:\Anaconda2\lib\site-packages\theano\compile\pfunc.py", line 479, in pfunc
    output_keys=output_keys)
  File "C:\Anaconda2\lib\site-packages\theano\compile\function_module.py", line 1776, in orig_function
    output_keys=output_keys).create(
  File "C:\Anaconda2\lib\site-packages\theano\compile\function_module.py", line 1456, in __init__
    optimizer_profile = optimizer(fgraph)
  File "C:\Anaconda2\lib\site-packages\theano\gof\opt.py", line 101, in __call__
    return self.optimize(fgraph)
  File "C:\Anaconda2\lib\site-packages\theano\gof\opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "C:\Anaconda2\lib\site-packages\theano\gof\opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "C:\Anaconda2\lib\site-packages\theano\gof\opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "C:\Anaconda2\lib\site-packages\theano\gof\opt.py", line 230, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "C:\Anaconda2\lib\site-packages\theano\gof\opt.py", line 89, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "C:\Anaconda2\lib\site-packages\theano\sandbox\cuda\dnn.py", line 2508, in apply
    dnn_available.msg)
AssertionError: cuDNN optimization was enabled, but Theano was not able to use it. We got this error:
Theano can not compile with cuDNN. We got this error:

>>>

有人能帮助我吗?谢谢。


尝试更新您的Theano版本? - malioboro
2个回答

34

虽然有一个只设置Path环境变量的方法来完成这个任务,但我从未成功过。对我而言,唯一有效的方法是手动将CuDNN文件复制到CUDA安装的适当文件夹中。

例如,如果你的CUDA安装在C:\CUDA\v7.0,而你提取了CuDNN到C:\CuDNN,那么你需要进行如下复制:

  • C:\CuDNN\lib\x64\文件夹中的内容需要复制到C:\CUDA\v7.0\lib\x64\中
  • C:\CuDNN\include\文件夹中的内容需要复制到C:\CUDA\v7.0\include\中
  • C:\CuDNN\bin\文件夹中的内容需要复制到C:\CUDA\v7.0\bin\中

之后应该就可以正常工作了。


哦,它可以工作了!在我的情况下,我也复制了\bin。非常感谢你!! - greentec
9
使用CUDA 7.5和CUDNN 5。CUDA的位置是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5。除了复制libinclude目录外,我还需要从bin目录中复制一个dll文件。然后它就可以工作了(在切换到Theano主分支之后,因为0.8.1版本比CUDNN 5旧)。 - Joels Elf
请注意,cuDNN需要支持Kepler(计算能力3.0)或更高版本的GPU。例如,Quadro 5000仅支持CNMeM而不支持cuDNN。 - casper.dcl
已经使用CUDA 8.0、cuDNN 5.1和Windows 10 64位系统成功运行了tensorflow 1.1。我也无法通过添加目录到路径来使其工作。兄弟,把你的地址发给我,我会送你一瓶啤酒,这可是经过几个小时的奋斗才得到的成果啊... - Grysik

-4

除了你所做的所有事情,我还更新了我的主文件夹中 .theanorc.txt 的以下内容,之后它就可以工作了。

[lib] 
#cnmem=1.0 
cudnn=1.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接