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))