2015-11-12 7 views
10

Mam ten post w użyciu Keras szkolić się RNN dla modelu językowego z dużym tensora 3D (generowane z tekstu, jednym gorącym zakodowane, a wyniki kształt (165717, 25, 7631)):"Nie wykryto g ++", a zestaw danych jest większy, czy istnieje limit rozmiaru matrycy w GPU?

WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to 
execute optimized C-implementations (for both CPU and GPU) and will default to 
Python implementations. Performance will be severely degraded. To remove this 
warning, set Theano flags cxx to an empty string. 
ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc 
installation and try again. 

Ale wszystko idzie dobrze, a ja ograniczam rozmiar zestawu danych do małego. Tak więc zastanawiam się, czy Theano czy CUDA ograniczają rozmiar matrycy?

Poza tym, czy mam lepszy sposób na wykonanie jednej gorącej reprezentacji? Mam na myśli, że w dużym tensorze 3D, większość elementów wynosi 0 z powodu jednopiętrowej reprezentacji. Jednak nie znalazłem warstwy, która akceptuje indeksową reprezentację słów.

+0

Wygląda na całkiem jasny komunikat o błędzie i nie ma nic wspólnego z CUDA. Twoja konfiguracja theano nie jest poprawna i nie może znaleźć kompilatorów hosta lub GPU. Napraw to i problem zniknie – talonmies

+0

@talonmies Nie wyjaśniłem się. Mój kod działa całkiem dobrze z małym zestawem danych (tylko do debugowania mojego kodu), taki błąd występuje tylko w przypadku dużego zestawu danych. – nanoix9

+0

Tak, ale komunikat o błędzie informuje również, dlaczego tak się dzieje. W małych rozmiarach używane są wyłącznie implementacje Pythona, ponieważ nie ma żadnej przewagi wydajności przy próbie użycia GPU – talonmies

Odpowiedz

3

Twoja instalacja Theano nie jest kompletna.

Istnieją dwa problemy wymienione w wklejony wyniku pytaniem jest:

WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.

Podejrzewam widzisz ten jeden nawet z małych rozmiarów danych, ale jest to ostrzeżenie więc rzeczy kontynuuj działa skutecznie (za pomocą czystego wdrożenie Pythona automatycznie).

ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again.

Jest to sytuacja, która ma miejsce, gdy rozmiar danych wzrasta, ponieważ teraz GPU próbuje być używane.

Obie wiadomości wskazują niekompletną instalację Theano. Pierwsza wskazuje, że nie skonfigurowałeś poprawnie kompilatora C++. Drugi wskazuje, że nie skonfigurowałeś poprawnie CUDA. Aby rozwiązać te problemy, musisz wykonać odpowiednie sekcje installation documentation. Zauważ, że samo robienie pip install Theano nie jest wystarczające, jeśli chcesz użyć czegoś innego niż czysto implementacje Pythona.

6
conda install mingw libpython 

Upewnij się, że jest zainstalowany. Uzyskaj tę odpowiedź z innego wpisu, https://stackoverflow.com/a/31109547/3598832, który wskazano w instrukcji.

+0

UnsatisfiableError: Znaleziono następujące specyfikacje będące w konflikcie: - mingw - python 3.5 * –

+0

Używam python 2.7 zamiast tego. – user3598832