【TensorFlow】TensorFlow从浅入深系列之八 -- 教你学会变量管理

本文是《TensorFlow从浅入深》系列之第8篇

TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法)

TensorFlow从浅入深系列之二 -- 教你通过思维导图深度理解深层神经网络

TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别

TensorFlow从浅入深系列之四 -- 教你深入理解过拟合问题(正则化)

TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型

TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)

TensorFlow从浅入深系列之七 -- 教你使用验证数据集判断模型效果

 

tf.variable_scope函数主要作用:

  1. 控制tf.get_variable执行的功能(博文TensorFlow函数之tf.get_variable()和tf.get_variable_scope()有详细介绍)
  2. 提了一个管理变量命名空间的方式(本篇着重介绍此作用)

 tf.variable_scope函数生成的上下文管理器会创建一个TensorFlow中的命名空间,在命名空间内创建的变量名称都会带上这个命名空间名作为前缀。

下边代码来显示如何通过tf.variable_scope来管理变量的名称。

import tensorflow as tf

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):
    # 可以直接通过带命名空间名称的变量名来获取其他命名空间下的变量。比如这里通过制定名称foo/bar/v来获取
    # 在命名空间foo/bar中创建的变量
    v5 = tf.get_variable('foo/bar/v', [1])
    
    print(v5 == v3)  # 输出为True
    
    v6 = tf.get_variable('foo/v1', [1])
    print(v6 == v4)   # 输出为True

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值