版权声明:本博客所有文章版权归博主刘兴所有,转载请注意来源 https://blog.csdn.net/AI_LX/article/details/89669720
由于tf.Variable() 每次都在创建新对象,所有reuse=True 和它并没有什么关系。对于get_variable(),来说,如果已经创建的变量对象,就把那个对象返回,如果没有创建变量对象的话,就创建一个新的。
get_variable()变量必须已经定义过了,而且必须是通过get_variable()定义的,才能设置 reuse=True
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tensorflow as tf
tf.reset_default_graph()
x3=tf.Variable(12.81,name="x3")
x2=tf.Variable(18.22,name="x2")
with tf.variable_scope("test1"):
x1=tf.get_variable(name="x1",shape=(),dtype=tf.float32,initializer=tf.constant_initializer(212.41))
with tf.variable_scope("test1", reuse = True):
var1=tf.get_variable(name="x1",shape=(),dtype=tf.float32)
with tf.variable_scope("test2"):
var2=tf.get_variable("var",shape=[2],initializer=tf.constant_initializer([1.3,2.]),dtype=tf.float32)
with tf.Session() as sess:
tf.global_variables_initializer().run()
print(x1.eval())
print(x2.eval())
print(x3.eval())
print(var1.name)
print(var2.name)
print(x1.name)
print(x1.shape)
print(sess.run(var1))
print(sess.run(var2))