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()创建会话会自动把生成的新会话作为默认会话