2015-11-12 14 views
10

ho ricevuto questo messaggio nell'uso Keras per addestrare un RNN per modello di linguaggio con un grande tensore 3D (generato da un testo, quello codificato caldo, e risulta una forma di (165717, 25, 7631)):"g ++ not detected" mentre il set di dati aumenta, esiste un limite alle dimensioni della matrice in 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. 

Ma tutto va bene mentre limito la dimensione del set di dati in piccolo. Quindi mi chiedo che Theano o CUDA limitino le dimensioni della matrice?

Inoltre, ho un modo migliore per eseguire una rappresentazione a caldo? Voglio dire, nel grande tensore 3D, la maggior parte degli elementi è 0 a causa della rappresentazione one-hot. Tuttavia, non ho trovato un livello che accetti la rappresentazione dell'indice delle parole.

+0

Sembra un messaggio di errore abbastanza chiaro per me e non ha nulla a che fare con CUDA. La tua configurazione di theano non è corretta e non riesce a trovare i compilatori host o GPU. Risolvilo e il problema sparirà – talonmies

+0

@talonmies Non mi sono chiarito. Il mio codice funziona abbastanza bene con un piccolo set di dati (solo per il debug del mio codice), tale errore si verifica solo con un set di dati di grandi dimensioni. – nanoix9

+0

Sì, ma il messaggio di errore indica anche perché ciò accade anche. A piccole dimensioni, vengono utilizzate pure implementazioni Python perché non c'è alcun vantaggio in termini di prestazioni nel tentativo di utilizzare la GPU. – talonmies

risposta

3

L'installazione di Theano non è completa.

Ci sono due problemi citati in seguito incollato della domanda:

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.

Ho il sospetto che stai vedendo questo uno anche con le piccole dimensioni dei dati, ma è un avvertimento quindi le cose continuano ad essere utilizzate con successo (utilizzando l'attuazione puro Python automaticamente).

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

Questo è quello che succede quando aumenta la dimensione dati perché ora la GPU sta cercando di essere utilizzato.

Entrambi i messaggi indicano un'installazione incompleta di Theano. Il primo indica che non hai impostato correttamente il compilatore C++. Il secondo indica che non hai impostato correttamente CUDA. È necessario seguire le sezioni appropriate di installation documentation per risolvere questi problemi. Nota che semplicemente fare pip install Theano non è sufficiente quando vuoi usare qualcosa di diverso dalle implementazioni di Python.

6
conda install mingw libpython 

Assicurarsi che questo sia installato. Ricevi questa risposta da un altro post, https://stackoverflow.com/a/31109547/3598832, indicato dal manuale.

+0

UnsatisfiableError: Le seguenti specifiche sono risultate in conflitto: - mingw - python 3.5 * –

+0

Io uso python 2.7 invece. – user3598832

Problemi correlati