tensorflow1.X参数空间变量引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import tensorflow as tf 
INI = tf.constant_initializer(value=999)

#1. 在Variable_scope中,用tf.get_Variable() 创建的变量可以重复使用
with tf.variable_scope('variable_scope'):
var1 = tf.get_variable(name='var1',shape=(),dtype=tf.float32,initializer=INI)#定义

#2. reuse=True 获取变量值的时候,需要将上下文管理器中的reuse设置为True
with tf.variable_scope('variable_scope',reuse=True):
reuse_var1 = tf.get_variable(name='var1')#引用

#3
# 内部:reuse=tf.AUTO_REUSE
# 可以实现第一次调用variable_scope时,传入的reuse值为False,再次调用时,传入reuse的值就会自动变为True。
with tf.variable_scope('test1',reuse=tf.AUTO_REUSE):
var2=tf.get_variable(name='var2',shape=(1,),dtype=tf.float32,initializer=INI)#定义
reuse_var2 = tf.get_variable(name='var2')#引用


SESS=tf.Session(); SESS.run(tf.global_variables_initializer())
print(var1.eval(session=SESS),var1.name)
print(reuse_var1.eval(session=SESS),reuse_var1.name)
print(var2.eval(session=SESS),var2.name)
print(reuse_var2.eval(session=SESS),reuse_var2.name)
# [999.] variable_scope/var1:0
# [999.] variable_scope/var1:0
# [999.] test1/var2:0
# [999.] test1/var2:0se

转载请注明来源 https://tianweiye.github.io