一 实例
分别使用Variable定义变量和使用get_variable来定义变量

二 代码
import tensorflow as tf 
tf.reset_default_graph() 
var1 = tf.Variable(1.0 , name='firstvar') 
print ("var1:",var1.name) 
var1 = tf.Variable(2.0 , name='firstvar') 
print ("var1:",var1.name) 
var2 = tf.Variable(3.0 ) 
print ("var2:",var2.name) 
var2 = tf.Variable(4.0 ) 
print ("var1:",var2.name) 
with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 
    print("var1=",var1.eval()) 
    print("var2=",var2.eval()) 
get_var1 = tf.get_variable("firstvar",[1], initializer=tf.constant_initializer(0.3)) 
print ("get_var1:",get_var1.name) 
#get_var1 = tf.get_variable("firstvar",[1], initializer=tf.constant_initializer(0.4)) 
#print ("get_var1:",get_var1.name) 
get_var1 = tf.get_variable("firstvar1",[1], initializer=tf.constant_initializer(0.4)) 
print ("get_var1:",get_var1.name) 
with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 
    print("get_var1=",get_var1.eval())
三 运行结果
var1: firstvar:0
var1: firstvar_1:0
var2: Variable:0
var1: Variable_1:0
var1= 2.0
var2= 4.0
get_var1: firstvar_2:0
get_var1: firstvar1:0
get_var1= [ 0.40000001]

四 说明
1 代码定义了两次var1,可以看到在内存中生成了两个var1(因为他们的name不一样),对于图来讲后面的var1是生效的(var1=2.0)。
2 var2表明了:Variable定义时没有指定名字,系统会自动给出一个名字Variable。
3 get_var1的name不能重复,这里第一次name是firstvar,第二次是firstvar1,如果第二次也用firstvar,程序会报错。同样新的get_var1会在图中生效,所有输出的是0.4,而不是0.3。

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!