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