- With用法 以及with tf.Session() as sess用法
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只顯示 warning 和 Error
import tensorflow as tf
a = tf.constant([1.0,2.0],name = "a")
b = tf.constant([2.0, 3.0], name = "b")
result = a + b
# Launch the graph in a session.
sess = tf.Session() #創建session會話,相當於分配內存(資源)
print (sess.run(result)) #調用run方法,run這個result,並輸出到屏幕上
sess.close()#關閉會話,釋放內存
#使用with,也就是python的上下文管理器,執行會會自動關閉會話,釋放內存,簡單高效!
with tf.Session() as sess:
print (sess.run(result))
運行結果
[ 3. 5.]
[ 3. 5.]
- g1.as_default()
as_default應用於有多個graph的場景
g1 = tf.Graph() #創建一個計算圖
with g1.as_default():
v = tf.get_variable("v", shape = [1], initializer=tf.zeros_initializer)
g2 = tf.Graph()
with g2.as_default():
v = tf.get_variable("v", shape = [1], initializer=tf.ones_initializer)
with tf.Session(graph = g1) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v")))
with tf.Session(graph = g2) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v")))
具體理解參考:
這裏