2015-12-29 29 views
6

Próbuję zainstalować Theano na Windwos 8Theano Instalacja w systemie Windows - load DLL nie powiodło

podążały these kroki.

próbuję przetestować przy użyciu:

import numpy as np 
import time 
import theano 

print('blas.ldflags=', theano.config.blas.ldflags) 
A = np.random.rand(1000, 10000).astype(theano.config.floatX) 
B = np.random.rand(10000, 1000).astype(theano.config.floatX) 
np_start = time.time() 
AB = A.dot(B) 
np_end = time.time() 
X, Y = theano.tensor.matrices('XY') 
mf = theano.function([X, Y], X.dot(Y)) 
t_start = time.time() 
tAB = mf(A, B) 
t_end = time.time() 
print("NP time: %f[s], theano time: %f[s] (times should be close when run on CPU!)" % (
np_end - np_start, t_end - t_start)) 
print("Result difference: %f" % (np.abs(AB - tAB).max(),)) 

Zdaję sobie sprawę, że skrypt jest porównanie między numpy i obliczeń Theano czasie.

Ale jakoś, niektóre dll nie zostanie znaleziony. Pl znaleźć następujący dziennik:

[Py341] C:\>python ML\Deep\TheanoSetupTesting.py 
blas.ldflags= -LE:\Things_Installed_Here\Theano\openblas -lopenblas 
Traceback (most recent call last): 
    File "ML\Deep\TheanoSetupTesting.py", line 12, in <module> 
    mf = theano.function([X, Y], X.dot(Y)) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\compile\function.py", line 317, in function 
    output_keys=output_keys) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\compile\pfunc.py", line 526, in pfunc 
    output_keys=output_keys) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\compile\function_module.py", line 1778, in orig_function 

    defaults) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\compile\function_module.py", line 1642, in create input_storage=input_storage_lists, storage_map=storage_map) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\link.py", line 690, in make_thunk 
    storage_map=storage_map)[:3] 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\vm.py", line 1037, in make_all 
    no_recycling)) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\op.py", line 932, in make_thunk 
    no_recycling) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\op.py", line 850, in make_c_thunk 
    output_storage=node_output_storage) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cc.py", line 1207, in make_thunk 
    keep_lock=keep_lock) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cc.py", line 1152, in __compile__ 
    keep_lock=keep_lock) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cc.py", line 1602, in cthunk_factory 
    key=key, lnk=self, keep_lock=keep_lock) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cmodule.py", line 1174, in module_from_key module = lnk.compile_cmodule(location) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cc.py", line 1513, in compile_cmodule 
    preargs=preargs) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cmodule.py", line 2196, in compile_str 
    return dlimport(lib_filename) 
    File "E:\Things_Installed_Here\Anaconda_Py\envs\Py341\lib\site-packages\theano-0.7.0-py3.4.egg\theano\gof\cmodule.py", line 331, in dlimport 
    rval = __import__(module_name, {}, {}, [module_name]) 
ImportError: DLL load failed: The specified module could not be found. 

będąc nowy w świecie Pythona, nie jestem w stanie dowiedzieć się, które Dll nie znaleziono. Zainstalowałbym go, jeśli go brakuje, i doda ścieżkę do zmiennej ścieżki systemowej. Ale jak mogę się dowiedzieć, która to biblioteka. Próbowałem użyć pdb i ustawić punkt przerwania w cmodule.py w różnych lokalizacjach, ale żadna nie zostanie trafiona.

  1. Czy znasz ten rodzaj błędu i jego rozdzielczość?
  2. W przeciwnym razie pomóż mi znaleźć tę brakującą nazwę biblioteki, a ja zajmie się resztą.
  3. Nie mam nic przeciwko przejściu zupełnie innej ścieżki instalowania theano. Natknąłem się na kilka postów, które sugerują, że kompilator microsoft działa dobrze. Ale już od 14 godzin nieprzerwanie siedzę i mam problem z metodą, która działa. Ostatecznie chcę theano w moim systemie.

BTW, nie ma CUDA. Próbuję tylko na procesorze.

+1

Cześć. Cierpi z tego samego problemu tutaj. Naprawdę, theano na Windows 64bit to katastrofa. Jeden problem poluje na następny, a jeśli twój depatment po prostu nie używa/nie zezwala na linux, to jaki jest wybór? – gilgamash

Odpowiedz

3

OK, w końcu znalazłem powód, przynajmniej dla mojej instalacji przy użyciu WinPython, python3.5.1.1, Win 7 64bit i mingw64:

w [.txt] plik .theanorc, ha, ja po zainstalowaniu blas, sekcja [blas] z linią zawierającą openblas zawierają ścieżkę. Usunąłem tę linię i zostawiłem obszar poniżej [blas] pusty. Zrestartował WinPython/Spider, otworzył nową konsolę i zadziałało.

Następnie przeprowadź test z uruchomieniem mnist.py z Lasagne przy użyciu Theano.

+1

Zrobiłem to, ale to nie działało dla mnie. Poddałem się temu i przeniosłem do Linuksa - sprawy szybko się palą: P. Doceniam twoje wysiłki. – Adorn

5

Może to być trochę za późno. Postępowałem zgodnie z tym samym przewodnikiem co ty, i wpadł na ten sam błąd.

Okazuje się, że można to naprawić, dodając katalog systemowy openblas do ścieżki systemowej. W twoim przykładzie dodaj "E: \ Things_Installed_Here \ Theano \ openblas" do zmiennej ścieżki systemowej.

Zauważ, że w zależności od tego, gdzie umieszczasz pliki DLL, musisz dodać "E: \ Things_Installed_Here \ Theano \ openblas" lub "E: \ Things_Installed_Here \ Theano \ openblas \ bin".

Windows 10 64-bitowy, Python 3.5.1 (Anaconda 2.5), Theano 0.8.2.

Dla tych, którzy tego potrzebują, jestem w stanie zainstalować Theano w Windows 10 dzięki tym trzem przewodnikom guide1, guide2 i przewodnikowi dołączonemu przez OP.

+0

Niestety, nie mogę tego przetestować, cieszę się światem 'linux'. Dla ludzi to działa, dodaj go w komentarzach, przez pewien czas, to może stać się rozwiązaniem roboczym – Adorn

1

miałem problemy z uzyskaniem Theano do pracy w systemie Windows 10 x64, jak również i po przeczytaniu kilku przewodników pomoc, co pracował dla mnie w końcu był następujący:

  1. zainstalować Intel Dystrybucja dla Pythona (marka pewien c: \ intelpython27 \ c: \ intelpython27 \ skrypty są w PATH)
  2. Otwórz wiersz polecenia i wykonaj: conda install mingw libpython
  3. Następnie wykonaj: pip install theano
  4. Pobierz prekompilowanego libopenblas.dll z http://sourceforge.net/projects/openblas/files/v0.2.14/ (Mam OpenBLAS-v0.2.14-Win64-int32.zip)
  5. Pobierz mingw64_dll.zip jak również z http://sourceforge.net/projects/openblas/files/v0.2.14/mingw64_dll.zip/download
  6. ekstrakt OpenBLAS-v0.2.14-Win64-int32.zip do C: \ openblas np
  7. ekstrakt mingw64_dll.zip c: \ openblas \ pojemnika
  8. dodać C: \ openblas \ lib i c: \ openblas \ pojemnika do ścieżki
  9. Tworzenie .theanorc.txt c: \ Users \ {użytkownika}
  10. Umieść w pliku .toranorc.txt:

    [global] 
    floatX = float32 
    device = cpu 
    
    [blas] 
    ldflags = -LC:\\openblas\\bin -LC:\\openblas\\lib -lopenblas 
    

Mam nadzieję, że to pomoże komuś.

1

Po prostu, aby dodać swoje doświadczenie z Win10 64bit i theano (i keras). Otrzymałem również błąd błędu ładowania DLL. Wypróbowałem wszystkie rzeczy, które znalazłem na stronie instalacji wygrywającej theano oraz na różnych forach i blogach (wymienionych tutaj w poście Uradium).

To nie dla mnie, ale tutaj jest to, co działało:

  1. zainstalowałem TDM-gcc-64 i openblas za pomocą regedit Dodałem swoje katalogi/bin do PATH (i/lib katalog openblas jak dobrze)

  2. oczyszczony venv pod miniconda3 - zainstalowany przesłanek Theano i Keras (scipy, numpy, pyyaml), Python 3.5.2

  3. conda install mingw libpython

  4. conda install theano (MinGW instaluje wszystkie biblioteki, jak również)

  5. w tym momencie - pracował - więc nie używam żadnej konfiguracji plików .theanorc.txt, nie bawiąc się zmiennymi środowisku Windows. Pracował nawet dla skryptów Pythona opartych na kamerze, nawet jeśli nie zainstalowałem kerasów w moim condva venv, który działał w ... (mam zainstalowane keras w moim "normalnym" pytonie nie-conda3, a później instaluję kable pod także mój conda venv).

0

Dość późno, ale na przyszłość. Natknąłem się na ten wątek, próbując uruchomić skrypt testowy OpenBLAS na procesorze. To działało dobrze na GPU, ale procesor daje mi takie same błędy jak OP. Próbowałem tutaj sugestii, ale to nie działało. Okazuje się, że linia w.theanorc:

ldflags=-LE:\OpenBLAS-v0.2.14-Win64-int32/bin -lopenblas 

nie powinien mieć spacji po bin i przed -l. Powinno być:

ldflags=-LE:\OpenBLAS-v0.2.14-Win64-int32/bin-lopenblas 

Teraz wszystko działa. Wypróbowałem:

Windows 10 
Python 3.5 
Theano 0.9 
Cuda 8 (with CudaMEM and CudaDNN) 
Visual Studio 2015 Community