TensorFlow实战-scope的调用

scope可以定义指定的命名空间,在此空间中定义的变量可以与空间外的变量重名,调用该变量时,只需要指定命名空间即可。

代码示例如下:

import tensorflow as tf

v1 = tf.get_variable("v",[1])
print (v1.name)       #输出v:0。“v”为变量的名称,“:0”表示这个变量时生成变量这个运算)
                      #的第一个结果。

with tf.variable_scope("foo"):
    v2 = tf.get_variable("v",[1])
    print (v2.name)     #输出foo/v:0。在tf.variable_scope中创建的变量,名称前面会
                        #加入命名空间的名称,并通过/来分隔命名空间的名称和变量的名称。

with tf.variable_scope("foo"):
    with tf.variable_scope("bar"):
        v3 = tf.get_variable("v",[1])
        print (v3.name)     #输出foo/bar/v:0。命名空间可以嵌套,同时变量的名称也会加
                            #入所有命名空间的名称作为前缀。

    v4 = tf.get_variable("v1",[1])
    print (v4.name)     #输出foo/v1:0。但命名空间退出之后,变量名称也就不会再被加入
                        #其前缀了。

#创建一个名称为空的命名空间,并设置reuse=True。
with tf.variable_scope("",reuse=True):
    v5 = tf.get_variable("foo/bar/v",[1])       #可以直接通过带命名空间名称的变量名
                                                #来获取其他命名空间下的变量。比如这
                                                #里通过指定名称foo/bar/v来获取在
                                                #命名空间foo/bar/中创建的变量。
                                                #输出True。
    print (v5 == v3)
    v6 = tf.get_variable("foo/v1",[1])
    print (v6 == v4)

 运行结果如下:

v:0
foo/v:0
foo/bar/v:0
foo/v1:0
True
True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值