tf.InteractiveSession()与tf.Session()
生活随笔
收集整理的這篇文章主要介紹了
tf.InteractiveSession()与tf.Session()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
tf.InteractiveSession()
tf.InteractiveSession():它能讓你在運行圖的時候,插入一些計算圖,這些計算圖是由某些操作(operations)構成的。這對于工作在交互式環境中的人們來說非常便利,比如使用IPython。
tf.InteractiveSession()是一種交互式的session方式,它讓自己成為了默認的session,也就是說用戶在不需要指明用哪個session運行的情況下,就可以運行起來,這就是默認的好處。這樣的話就是run()和eval()函數可以不指明session
tf.Session()
tf.Session():需要在啟動session之前構建整個計算圖,然后啟動該計算圖。
示例
import tensorflow as tf import numpy as npa=tf.constant([[1., 2., 3.],[4., 5., 6.]]) b=np.float32(np.random.randn(3,2)) c=tf.matmul(a,b) init=tf.global_variables_initializer() sess = tf.InteractiveSession() print (c.eval())sess.close()以下幾種等價:
sess = tf.InteractiveSession() print (c.eval())sess.close() sess = tf.Session() with sess.as_default(): sess=tf.Session() print (c.eval(session=sess)) sess.close() with tf.Session() as sess:print(sess.run(c))print(c.eval())使用區別:
- 在我們使用tf.InteractiveSession()來構建會話的時候,我們可以先構建一個session然后再定義操作(operation),
- 如果我們使用tf.Session()來構建會話我們需要在會話構建之前定義好全部的操作(operation)然后再構建會話。
- 使用InteractiveSession一個主要的變化是:運行在沒有指定會話對象的情況下運行變量。這是與Session()最大的不同。
- Session()使用with…as…后可以不使用close關閉對話,而調用InteractiveSession需要在最后調用close
總結:tf.InteractiveSession()默認自己就是用戶要操作的session,而tf.Session()沒有這個默認,因此用eval()啟動計算時需要指明session。
總結
以上是生活随笔為你收集整理的tf.InteractiveSession()与tf.Session()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tf.ConfigProto()详解
- 下一篇: 详解python中的round()函数