Tensorflow实战google深度学习框架代码学习七(Tensorflow变量管理机制)

#tensorflow中关于变量的管理
import tensorflow as tf

with tf.variable_scope("good"):#上下文管理器命名空间
    #变量管理用tf.variable_scope()函数,当参数reuse=False,tf.get_variable()创建变量,当参数reuse=True,tf.get_variable()获取前面创建的变量值
    a1 = tf.get_variable(name='a',shape=[1,2],dtype=tf.float32,initializer=tf.truncated_normal_initializer(stddev=0.1))

with tf.variable_scope("good", reuse=True):#reuse=True获取上面创建的名称为a的变量
    a2 = tf.get_variable(name='a')
        
print(a1 == a2)

with tf.variable_scope('A'):#上下文管理器嵌套的使用例子
    with tf.variable_scope('B'):
        c = tf.get_variable(name='b',shape=[2,3],initializer=tf.truncated_normal_initializer(stddev=0.1))#嵌套中创建变量
        print(tf.get_variable_scope().reuse)
    with tf.variable_scope('C',reuse=True):
        print(tf.get_variable_scope().reuse)
    print(tf.get_variable_scope().reuse)
with tf.variable_scope('',reuse=True):
    d = tf.get_variable('A/B/b')#通过命名空间获取变量
    print(c==d)

结果:

True
False
True
False
True

关于使用变量管理的好处:使程序更简单,可读性更强。当需要使用训练好的模型只需要把reuse设置为True

    原文作者:Carson
    原文地址: https://zhuanlan.zhihu.com/p/37071973
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞