【问题标题】:how to setup cuDnn with theano on Windows 7 64 bit如何在 Windows 7 64 位上使用 theano 设置 cuDnn
【发布时间】:2016-07-14 20:51:33
【问题描述】:

我已经在我的机器上安装了Theano 框架并启用了 CUDA,但是当我在我的 python 控制台中“导入 theano”时,我收到了以下消息:

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

现在“CuDNN 不可用”,我从 Nvidia 网站下载了cuDnn。我还更新了环境中的“路径”,并在“.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:

>>>

有人可以帮助我吗?谢谢。

【问题讨论】:

标签: python theano cudnn


【解决方案1】:

应该有一种方法可以通过仅设置 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 。非常感谢!!
  • 使用 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 旧)。
  • 请注意,cuDNN 需要一个 GPU,它是 Kepler(计算能力 3.0)或更高版本。例如Quadro 5000 仅支持 CNMeM,不支持 cuDNN。
  • 让它与 CUDA 8.0、cuDNN 5.1 和 Windows 10 64 位和 tensorflow 1.1 一起工作。我也无法将目录添加到路径中。伙计把你的地址给我,我给你送啤酒,几个小时的战斗......
【解决方案2】:

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

[lib] 
#cnmem=1.0 
cudnn=1.0

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2016-12-30
    • 2014-03-14
    • 2013-03-24
    • 1970-01-01
    相关资源
    最近更新 更多