1 import tensorflow as tf
2 tf.reset_default_graph()
3 var1=tf.Variable(10.0,name="var1")
4 var2=tf.Variable(11.0,name="var1")
5 var3=tf.Variable(12.0)
6 var4=tf.Variable(13.0)
7 with tf.variable_scope("test1" ):
8 var5=tf.get_variable('var1',shape=[2],dtype=tf.float32)
9 with tf.variable_scope("test2" ):
10 var6=tf.get_variable('var1',shape=[2],dtype=tf.float32)
11
12 var7=tf.get_variable('var1',shape=[2],dtype=tf.float32)
13 print("var1:",var1.name) #print variable 1
14 print("var2:",var2.name) #print variable 2
15 print("var3:",var3.name) #print variable 3
16 print("var4:",var4.name) #print variable 4
17 print("var5:",var5.name) #print get_variable 1
18 print("var6:",var6.name) #print get_variable
19 print("var7:",var7.name)
运行结果:
代码分析:
1、tf.reset_default_graph函数用于清除默认图形堆栈并重置全局默认图形
2、tf.variable与tf.get_variable都可以用来创建一个变量
3、tf.variable创建会检测变量名是否冲突,如果冲突则自己重新命名1个新的变量名,而tf.get_variable 如果遇到冲突则会报错
4、with tf.variable_scope("test2" ):
tf.variable_scope(): 可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable变量
它返回的是一个用于定义创建variable(层)的op的上下文管理器。
可变范围允许创建新的variable并分享已创建的variable,同时提供检查,不会意外创建或共享