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表示重用。

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