Hauptsächlich aus offiziellen Unterlagen entnommen :
Der einzige Unterschied zu einer regulären Sitzung besteht darin, dass sich eine InteractiveSession beim Erstellen als Standardsitzung installiert. Die Methoden Tensor.eval () und Operation.run () verwenden diese Sitzung, um Operationen auszuführen.
Dies ermöglicht die Verwendung eines interaktiven Kontexts wie einer Shell, da kein explizites Sitzungsobjekt übergeben werden muss, um op: auszuführen.
sess = tf.InteractiveSession()
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
print(c.eval())
sess.close()
Es ist auch möglich zu sagen, dass dies InteractiveSession
weniger Eingabe unterstützt, da Variablen ausgeführt werden können, ohne ständig auf das Sitzungsobjekt verweisen zu müssen.
Der einzige Unterschied zwischen
Session
und eineInteractiveSession
ist , dassInteractiveSession
sich die macht Standard - Session , so dass Sie anrufen können ,run()
odereval()
ohne die Sitzung explizit aufrufen.Dies kann hilfreich sein, wenn Sie mit TF in einer Python-Shell oder in Jupyter-Notizbüchern experimentieren, da kein explizites Sitzungsobjekt übergeben werden muss, um Vorgänge auszuführen.
quelle
Neben der Installation als Standardsitzung gemäß der offiziellen Dokumentation scheint es, dass die interaktive Sitzung nach einigen Tests zur Speichernutzung die Option gpu_options.allow_growth = True verwendet - siehe [using_gpu # allow_gpu_memory_growth] - während tf.Session () von Standardmäßig wird der gesamte GPU-Speicher zugewiesen.
quelle
tf.InteractiveSession
Dokumente beweisen auf die eine oder andere Weise.Anstelle der oben genannten Unterschiede besteht der wichtigste Unterschied darin, dass
session.run()
wir Werte mehrerer Tensoren in einem Schritt abrufen können.Zum Beispiel:
num1 = tf.constant(5) num2 = tf.constant(10) num3 = tf.multiply(num1,num2) model = tf.global_variables_initializer() session = tf.Session() session.run(model) print(session.run([num2, num1, num3]))
quelle