码迷,mamicode.com
首页 > 其他好文 > 详细

tensorflow 变量

时间:2017-11-12 16:24:12      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:logs   ready   影响   作用   数据流   需要   fine   value   共享变量   

tf.get_variable(): 不受 name_scope 的影响,在未指定共享变量时,重名报错

tf.Variable()    : 会自动检测有无重名,重名自行处理

with tf.name_scope(name_scope_1):# name_scope 的作用封装一堆操作,使数据流图有层次感
    var1 = tf.get_variable(name=var1, shape=[1], dtype=tf.float32)
    var2 = tf.get_variable(name=var1, shape=[1], dtype=tf.float32)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(var1.name, sess.run(var1))
    print(var2.name, sess.run(var2))

# ValueError: Variable var1 already exists, disallowed. Did you mean 
# to set reuse=True in VarScope? Originally defined at:
# var1 = tf.get_variable(name=‘var1‘, shape=[1], dtype=tf.float32)

当需要共享变量时,使用tf.variable_scope()



with tf.variable_scope(variable_scope_y) as scope:
    var1 = tf.get_variable(name=var1, shape=[1], dtype=tf.float32)
    scope.reuse_variables()  # 设置共享变量
    var1_reuse = tf.get_variable(name=var1)
    var2 = tf.Variable(initial_value=[2.], name=var2, dtype=tf.float32)
    var2_reuse = tf.Variable(initial_value=[2.], name=var2, dtype=tf.float32)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(var1.name, sess.run(var1))
    print(var1_reuse.name, sess.run(var1_reuse))
    print(var2.name, sess.run(var2))
    print(var2_reuse.name, sess.run(var2_reuse))
# 输出结果:
# variable_scope_y/var1:0 [-1.59682846]
# variable_scope_y/var1:0 [-1.59682846]   可以看到变量var1_reuse重复使用了var1
# variable_scope_y/var2:0 [ 2.]
# variable_scope_y/var2_1:0 [ 2.]
也可以这样with tf.variable_scope(foo) as foo_scope:
    v = tf.get_variable(v, [1])
with tf.variable_scope(foo, reuse=True):
    v1 = tf.get_variable(v)
assert v1 == v
或者这样:with tf.variable_scope(foo) as foo_scope:
    v = tf.get_variable(v, [1])
with tf.variable_scope(foo_scope, reuse=True):
    v1 = tf.get_variable(v)
assert v1 == v

 

tensorflow 变量

标签:logs   ready   影响   作用   数据流   需要   fine   value   共享变量   

原文地址:http://www.cnblogs.com/fanhaha/p/7821705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!