2016-05-24 8 views
0

Spyder kommt mit einem leistungsfähigen Debugger, der verwendet werden kann, um Code während der Ausführung zu pausieren und die Variablen zu überprüfen.Spyder Debugger für Tensorflow

Auf der anderen Seite können Tensorflow-Variablen nicht leicht überprüft werden. Gibt es eine Möglichkeit, sie in der Python-Konsole in Spyder anzuzeigen?

Update: Während ich versuche, den Kommentar von Anatoly Techtonik zu beantworten, habe ich beschlossen, ein Dummy-Programm zu schreiben Fall die Situation zeigen:

import tensorflow as tf 

class foo(object): 

    def __init__(self, a, b): 
     self.a = tf.constant(a) 
     self.b = tf.constant(b) 
     init = tf.initialize_all_variables() 
     self.c = self._foo_add() 
     # Launch the session 
     self.sess = tf.InteractiveSession() 
     self.sess.run(init) 

    def _foo_add(self): 
     m = tf.add(self.a,self.b) 
     return tf.add(m, tf.constant(1)) 

    def print_foo(self): 
     return self.sess.run(self.c) 

f = foo(2,3) 
print f.print_foo() 

Wenn Sie einen Kontrollpunkt auf der return-Anweisung des PUT Funktion _foo_add, drücken Sie die Debug-Taste und geben Sie m.eval() in der Konsole ein, Sie können auf seinen Wert zugreifen, der in diesem Fall 5 ist. Ich denke, das beantwortet meine Frage. Danke anatoly techtonik.

+0

Damit dies funktioniert, muss jemand ein spezielles Rendering für Tensorflow-Objekte zum Objektinspektor hinzufügen. –

+0

Viele Objekte sind im Objektinspektor nicht sichtbar, aber es ist möglich, ihre Werte in der Debugger-Konsole auszugeben. Tensoren auf der anderen Seite scheinen etwas komplizierter zu sein. – Phoenix666

+1

Kannst du ein gif von dem, was passiert und wie es sein soll? http://www.cockos.com/licecap/ –

Antwort