tf.Session():需要在启动session之前构建整个计算图,然后启动该计算图。
意思就是在我们使用tf.InteractiveSession()来构建会话的时候,我们可以先构建一个session然后再定义操作(operation),如果我们使用tf.Session()来构建会话我们需要在会话构建之前定义好全部的操作(operation)然后再构建会话。
tf中的变量和操作(合称tensor)定义好后,由Session对象合称graph。
一般我们会用tf.Session()对象,语句如下:
import tensorflow as tf
x=tf.constant(10)
y=tf.constant(23)
with tf.Session() as sess:
print(sess.run(x))
print(sess.run(y))
上面代码一个Session将多个变量整合到graph中去
但对于像Python原生编辑器,或者jupyter这样的基于浏览器的python编辑器,要一段一段
的输入代码。
于是就有了tf.InteractiveSession()这样的交互式会话,它不需要“sess.run(变量)”这种形式
而是定义好会话对象后,每次执行tensor时,调用tensor.eval()即可
如下:
x=tf.constant(10)
y=tf.constant(23)
sess = tf.InteractiveSession()
print(x.eval())
print(y.eval())
sess.close()
问题:
tf.Session()
和
tf.InteractiveSession()的区别?
答案:
唯一的区别在于:tf.InteractiveSession()加载它自身作为默认构建的session,tensor.eval()和operation.run()取决于默认的session.
换句话说:InteractiveSession
输入的代码少,原因就是它允许变量不需要使用session就可以产生结构。
原文链接:
https://blog.csdn.net/qq_14839543/article/details/77822916
http://www.360doc.com/content/17/0303/14/10408243_633626759.shtml