本篇是 TensorFlow 的 tf.InteractiveSession 互動式 Session 使用教學。

在 TensorFlow 中,所有的運算都要放在 session 中執行,而如果在 shell 或 IPython notebooks 中執行 TensorFlow 的程式時,我們可以改用比較方便使用的 tf.InteractiveSession


正常來說,TensorFlow 的程式放在 tf.Session 中跑的時候,我們會這樣寫:

import tensorflow as tf
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
sess = tf.Session()

# 使用 sess 這個 session 執行
print(sess.run(c))

sess.close()

tf.InteractiveSessiontf.Session 的作用相同,只不過 tf.InteractiveSession 在建立時,會自動將自己設定為預設的 session,這樣可以讓我們少打一些字。

import tensorflow as tf
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b

# 自動設定為預設的 session
sess = tf.InteractiveSession()

# 直接使用 tf.Tensor.eval 執行,不需要指定 sess 變數
print(c.eval())

sess.close()

這裡的 c 在呼叫 tf.Tensor.eval 執行時,會自動使用預設的 session(也就是 sess)來執行。

而一般的 tf.Session 只有在 with 環境之下才會將自己設定為預設的 session:

import tensorflow as tf
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
with tf.Session():
  # 亦可使用 tf.Tensor.eval 執行
  print(c.eval())