2016-03-29 11 views
0

Ich schrieb ein Theano Machine Learning-Programm. Aber ich habe zwei absolut unterschiedliche Ergebnisse zwischen CPU und GPU.Theano hat unterschiedliche Ergebnisse auf CPU und GPU

Unten finden Sie das Protokoll. (Nur ein winziger Teil von log)

result on GPU

result on CPU

Der Funktionsverlust verringert sich schnell und dann auf 0,2 auf CPU converg.

Allerdings wird die Verlustfunktion erhöhen und schließlich NaN auf GPU werden.

Welche Fehler können in meinem Programm enthalten sein? Oder was sollte ich beachten? Vielen Dank!

Antwort

0

Könnte es sein, dass die CPU float64 (doppelte Genauigkeit) verwendet und die GPU float32 (einfache Genauigkeit) verwendet? Hier können Sie die Konfigurationsflags nachschauen: http://deeplearning.net/software/theano/library/config.html

+0

Aber ... ich habe "warn_float64 = raise" verwendet und nichts ist passiert. Ich habe "floatX = float32" gesetzt. – Linsir

+0

Haben Sie 'floatX = float32' für GPU _and_ CPU explizit gesetzt? Wie 'THEANO_FLAGS = 'floatX = float32, Gerät = CPU ...' – Framester

+0

Ja, tat ich. Und der Befehl ist 'THEANO_FLAGS = Modus = FAST_RUN, Gerät = CPU, floatX = float32 Python train.py' 'THEANO_FLAGS = Modus = FAST_RUN, Gerät = Gpu0, floatX = float32 Python train.py' – Linsir