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()創建會話會自動把生成的新會話作為默認會話