1 import tensorflow as tf
 2 
 3 # 创建一个变量--变量op
 4 # 可以使用随机张量来初始化这个变量
 5 # var1 = tf.Variable(
 6 #     initial_value=tf.random_normal(
 7 #         shape=[2, 2],
 8 #         mean=0.0,
 9 #         stddev=1.0
10 #     ),
11 #     trainable=True,  # 可用于指定被训练
12 #     name="var1"
13 # )
14 #
15 # var2 = tf.Variable(
16 #     initial_value=tf.random_normal(
17 #         shape=[2, 3],
18 #         mean=0.0,
19 #         stddev=1.0
20 #     ),
21 #     trainable=True,  # 可用于指定被训练
22 #     name="var2"
23 # )
24 # 变量用途---用于多次修改的值的地方----用于训练参数
25 # print("var1:\n", var1)
26 # print("var2:\n", var2)
27 #
28 # # 变量op需要经过显式的初始化
29 # init_op = tf.global_variables_initializer()
30 # # 开启会话 执行变量
31 # with tf.Session() as ss:
32 #     ss.run(init_op)
33 #     print(ss.run([var1, var2]))
34 
35 # 思考??
36 # python里面想要共享同一个变量----global
37 # 如何实现tensorflow里面的变量共享???
38 # 命名空间
39 # 命名空间的名称
40 # with tf.variable_scope("myscope"):
41 #     var1 = tf.Variable(
42 #         initial_value=tf.random_normal(
43 #             shape=[2, 2],
44 #             mean=0.0,
45 #             stddev=1.0
46 #         ),
47 #         trainable=True,  # 可用于指定被训练
48 #         name="var1"
49 #     )
50 #
51 #     var2 = tf.Variable(
52 #         initial_value=tf.random_normal(
53 #             shape=[2, 2],
54 #             mean=0.0,
55 #             stddev=1.0
56 #         ),
57 #         trainable=True,  # 可用于指定被训练
58 #         name="var1"
59 #     )
60 # print("var1:\n", var1)
61 # print("var2:\n", var2)
62 
63 # (1)开启命名空间,指定命名空间里面的 reuse=tf.AUTO_REUSE
64 # (2)创建变量op的指定使用tf.get_variable
65 # (3)tf.get_variable里面的参数initializer必须以关键字形式传递
66 # (4)将指定空间的名称置为一样的
67 with tf.variable_scope("myscope", reuse=tf.AUTO_REUSE):
68     var1 = tf.get_variable(
69         initializer=tf.random_normal(
70             shape=[2, 2],
71             mean=0.0,
72             stddev=1.0
73         ),
74         name="var"
75     )
76     var2 = tf.get_variable(
77         initializer=tf.random_normal(
78             shape=[2, 2],
79             mean=0.0,
80             stddev=1.0
81         ),
82         name="var"
83     )
84 
85 print("var1:", var1)
86 print("var2:", var2)
87 #
88 # 开启会话执行图
89 with tf.Session() as ss:
90     # 变量op还是需要显式的初始化
91     ss.run(tf.global_variables_initializer())
92 
93     #
94     print(ss.run(var1))
95     print(ss.run(var2))