tf.variable_scope和tf.name_scope的用法

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文章均迁移到我的主页 http://zhenlianghe.com my github: https://gith...
    LynnHoHZL阅读 6,769评论 0 2
  • 简单线性回归 import tensorflow as tf import numpy # 创造数据 x_dat...
    CAICAI0阅读 8,938评论 0 49
  • tf.Variable的参数列表为tf.Variable(name=None, initial_value, va...
    溪奇阅读 12,713评论 0 1
  • 娃最近酷爱看综艺节目,一有机会就打开电视机,对着屏幕哈哈大笑。她还用手机关注了今日头条这样没有节操的公众号,看了很...
    诺拉的以后阅读 1,652评论 2 1
  • 我们的这座小城虽然地方不大,书店却不少,单单新华书店就有两个,其他知名、不知名的小书店更是多如牛毛。当然,若论藏书...
    辰辰的爸爸阅读 2,299评论 4 0

友情链接更多精彩内容