python 中with用法以及with tf.Session(graph = g1) as sess:用法

  • 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")))

具體理解參考:
這裏

  • tf.global_variables_initializer()用法
    sess.run(tf.global_variables_initializer()) ,這行代碼的官方解釋是 初始化模型的參數。
    具體原理參看這裏

  • tf.get_variable()和tf.Variable()以及tf.variable_scope()用法
    這裏
    其中with tf.variable_scope("", reuse=True):中的reuse=True表示重用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章