2015-05-12 9 views
14

Ho provato a cambiare il dispositivo utilizzato nel programma basato su theano.Come posso cambiare il dispositivo usato di theano

from theano import config 
config.device = "gpu1" 

Comunque ho ottenuto l'errore

Exception: Can't change the value of this config parameter after initialization! 

mi chiedo qual è il modo migliore di cambiamento GPU per GPU1 in codice?

Grazie

risposta

8

non esiste alcun modo per modificare questo valore nel codice in esecuzione nello stesso processo. Il meglio che si può fare è avere un processo "genitore" che altera, ad esempio, la variabile di ambiente THEANO_FLAGS e genera figli. Tuttavia, il metodo di spawning determinerà l'ambiente in cui operano i bambini.

Nota anche che non c'è modo di farlo in un modo che mantenga la memoria di un processo attraverso la modifica. Non è possibile iniziare a girare sulla CPU, lavorare con i valori memorizzati in memoria, quindi passare all'esecuzione su GPU e continuare a utilizzare i valori ancora in memoria dalla fase di lavoro precedente (CPU). Il processo deve essere arrestato e riavviato per una modifica del dispositivo da applicare.

Non appena il dispositivo è impostato su import theano, il dispositivo non può essere modificato nel processo che ha effettuato l'importazione.

7

Un'altra possibilità che ha funzionato per me è stato l'impostazione della variabile d'ambiente nel processo, prima di Theano importare:

import os  
os.environ['THEANO_FLAGS'] = "device=gpu1"  
import theano 
Problemi correlati