共享变量
import tensorflow as tf
# get_variable和variable的区别
# var1 = tf.Variable(1.,name='firstvar')
# print(var1.name)
#
# var1 = tf.Variable(2.,name='first')
# print(var1.name)
#
# var2 = tf.Variable(3.)
# print(var2.name)
#
# var2 = tf.Variable(4.)
# print(var2.name)
#
# get_var1 = tf.get_variable('firstvar',[1],initializer=tf.constant_initializer(0.3))
# print(get_var1.name)
#
# get_var1 = tf.get_variable('firstvar1',[1],initializer=tf.constant_initializer(0.4))
# print(get_var1.name)
# 在特定作用域下获取变量
# with tf.variable_scope('test1',):
# var1 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
#
# with tf.variable_scope('test2',):
# var2 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
#
# 共享变量功能的实现
# with tf.variable_scope('test1',reuse=True):
# var3 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
#
# with tf.variable_scope('test2',):
# var4 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
# print(var1.name)
# print(var2.name)
# print(var3.name)
# print(var4.name)
# with tf.variable_scope('test1',initializer=tf.constant_initializer(0.4)):
# var1 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
# with tf.variable_scope('test2'):
# var2 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
# var3 = tf.get_variable('var3',shape=[2],initializer=tf.constant_initializer(0.3))
with tf.variable_scope('scope1') as sp:
var1 = tf.get_variable('v',[1])
print(sp.name)
print(var1.name)
with tf.variable_scope('scope2'):
var2 = tf.get_variable('v',[1])
with tf.variable_scope(sp) as sp1:
var3 = tf.get_variable('v3',[1])
print(sp1.name)
print(var2.name)
print(var3.name)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
# print(var1.eval())
# print(var2.eval())
# print(get_var1.eval())
# print(var1.eval())
# print(var2.eval())
# print(var3.eval())