美文网首页
tf.variable_scope和tf.name_scope的

tf.variable_scope和tf.name_scope的

作者: Perry_Wu | 来源:发表于2018-02-06 14:22 被阅读0次

    tf.variable_scope可以让不同命名空间中的变量取相同的名字,无论tf.get_variable或者tf.Variable生成的变量

    tf.name_scope具有类似的功能,但只限于tf.Variable生成的变量

    import tensorflow as tf;    
    import numpy as np;    
    import matplotlib.pyplot as plt;    
      
    with tf.variable_scope('V1'):  
        a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))  
        a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')  
    with tf.variable_scope('V2'):  
        a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))  
        a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')  
        
    with tf.Session() as sess:  
        sess.run(tf.initialize_all_variables())  
        print a1.name  
        print a2.name  
        print a3.name  
        print a4.name  
    
    输出:
    V1/a1:0
    V1/a2:0
    V2/a1:0
    V2/a2:0
    
    import tensorflow as tf;    
    import numpy as np;    
    import matplotlib.pyplot as plt;    
      
    with tf.name_scope('V1'):  
        a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))  
        a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')  
    with tf.name_scope('V2'):  
        a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))  
        a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')  
        
    with tf.Session() as sess:  
        sess.run(tf.initialize_all_variables())  
        print a1.name  
        print a2.name  
        print a3.name  
        print a4.name  
    
    报错:Variable a1 already exists, disallowed. Did you mean to set reuse=True in VarScope? 
    
    import tensorflow as tf;    
    import numpy as np;    
    import matplotlib.pyplot as plt;    
      
    with tf.name_scope('V1'):  
        # a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))  
        a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')  
    with tf.name_scope('V2'):  
        # a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))  
        a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')  
        
    with tf.Session() as sess:  
        sess.run(tf.initialize_all_variables())  
        # print a1.name  
        print a2.name  
        # print a3.name  
        print a4.name  
    
    输出:
    V1/a2:0
    V2/a2:0
    

    相关文章

      网友评论

          本文标题:tf.variable_scope和tf.name_scope的

          本文链接:https://www.haomeiwen.com/subject/gosgzxtx.html