2016-03-27 7 views
10

I Theano Framework installiert und aktiviert habe CUDA auf meinem Rechner, aber wenn ich "Import Theanos" in meiner Python-Konsole, bekam ich die folgende Meldung:zum Einrichten cuDnn mit Theano auf Windows 7 64 Bit

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

Nun, dass "CuDNN nicht verfügbar", habe ich cuDnn von Nvidia-Website heruntergeladen. Ich habe auch 'path' in der Umgebung aktualisiert und 'optimizer_including = cudnn' in der Konfigurationsdatei '.theanorc.txt' hinzugefügt.

Dann versuchte ich wieder, aber nicht, mit:

>>> 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: 

>>> 

jemand kann mir helfen? Vielen Dank.

+0

versuchen Sie, Ihre theano-Version zu aktualisieren? – malioboro

+0

Mögliche Duplikate von [Wie installiere ich dasano in Anaconda ver. 2.1 Windows 64 bit für Python 3.4?] (Http://stackoverflow.com/questions/27629347/how-do-i-install-theano-in-anaconda-ver-2-1-windows-64-bit-for- Python-3-4) – devinbost

Antwort

35

Es sollte einen Weg geben, dies zu tun, indem Sie nur die Pfadumgebungsvariable setzen, aber ich könnte nie das zum Funktionieren bringen. Das Einzige, was für mich funktionierte, war, die CuDNN-Dateien manuell in die entsprechenden Ordner Ihrer CUDA-Installation zu kopieren.

Zum Beispiel, wenn Ihre CUDA Installation in C: \ CUDA \ v7.0 und Sie CuDNN bis C extrahiert: \ CuDNN Sie würden wie folgt kopieren:

  • Der Inhalt von C: \ CuDNN \ lib \ x64 \ würde nach C: \ CUDA \ v7.0 kopiert werden \ lib \ x64 \
  • Der Inhalt von C: \ CuDNN \ include \ würde nach C: \ CUDA \ v7.0 \ include \
  • kopiert werden
  • Die Inhalte von C: \ CuDNN \ bin \ C kopiert werden würde: \ CUDA \ v7.0 \ bin \

Danach es sollte funktionieren.

+0

Oh, es funktioniert! In meinem Fall habe ich auch \ bin kopiert. Vielen Dank!! – greentec

+9

Verwenden von CUDA 7.5 und CUDNN 5. Der Speicherort von CUDA ist 'C: \ Programme \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5'. Zusätzlich zum Kopieren des "lib" - und "include" -Verzeichnisses musste ich auch eine DLL aus dem 'bin'-Verzeichnis kopieren. Dann hat es geklappt (nachdem ich in den Theano-Master-Zweig gewechselt habe, weil das 0.8.1-Release älter als CUDNN 5 ist). –

+0

Beachten Sie, dass cuDNN eine GPU benötigt, die Kepler (Compute Capability 3.0) oder höher ist. z.B. Ein Quadro 5000 unterstützt nur CNMeM und nicht cuDNN. – abcdaa

-4

Zusätzlich zu all den Sachen, die du getan habe, habe ich folgenden Inhalt von .theanorc.txt in meinem Home-Ordner aktualisiert und es hat danach funktioniert.

[lib] 
#cnmem=1.0 
cudnn=1.0