session 是一个会话控制
import tensorflow as tf matrix1 = tf.constant([[3, 3]]) matrix2 = tf.constant([[2], [2]]) product = tf.matmul(matrix1, matrix2) # matrix multiply np.dot(m1, m2) # method 1 sess = tf.Session() result = sess.run(product) print(result) sess.close() # method 2 with tf.Session() as s: result = s.run(product) print(result)
第二种方法类似于文件的with,他会在结束时候关闭session
默认的会话:
tensorflow不会生成默认的会话,需要手动指定
import tensorflow as tf data1 = tf.constant(1.0, tf.float32) data2 = tf.constant(2.0, tf.float32) add = tf.add(data1, data2) sess = tf.Session() with sess.as_default(): print(add.eval())
在with语句中 sess调用了自身的as_default方法,使他在这个with语句中成为了默认的会话,所以直接可以用add调用eval不用传入session参数就可以在sess终于运行了
下面的代码和上面的内容是一样的,也就是没有指定默认的session。需要在eval方法中传入session参数
import tensorflow as tf data1 = tf.constant(1.0, tf.float32) data2 = tf.constant(2.0, tf.float32) add = tf.add(data1, data2) sess = tf.Session() print(add.eval(session=sess))
在tensorflow中用tf.InteractiveSession()创建会话会自动把生成的新会话作为默认会话