tensorflow 学习笔记 之 Variable

1)为什么tensorflow要Variable来定义变量,而不用直接采用python语言的方式定义变量?

变量有作用域,普通python变量分局部变量和全局变量,函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。

tf.Variable定义的变量,可以看作图(Graph)作用域变量,相当有计算图中的一个节点(操作),可以这个变量和某个计算图绑定,这样可以通过计算图来共享这个变量,当我们为计算图某层权值参数定义为Variable时,不同的函数都可以访问该参数值,特别是优化函数,可以在训练时更新权值。

2)创建变量方法

w = tf.Variable(<initial-value>, name=<optional-name>)

创建变量的最佳方式是调用 tf.get_variable 函数。此函数要求您指定变量的名称。其他副本将使用此名称访问同一变量,以及在对模型设置检查点和导出模型时指定此变量的值。tf.get_variable 还允许您重复使用先前创建的同名变量,从而轻松定义重复利用层的模型。

my_variable = tf.get_variable("my_variable", [1, 2, 3])

先去集合中找有没有"my_variable"这个变量,如果有直接返回这个变量,如果没有,新建一个变量,并将其加入变量集中。

3)变量集合

新建Variable变量会默认放在这两个集合中

如果不希望变量可训练,可以将其添加到 tf.GraphKeys.LOCAL_VARIABLES 集合中。

也可以使用自己的集合。集合名称可为任何字符串,且您无需显式创建集合。

4)初始化变量

要在训练开始前一次性初始化所有可训练变量,用 tf.global_variables_initializer()。此函数会返回一个操作,负责初始化 tf.GraphKeys.GLOBAL_VARIABLES 集合中的所有变量。

5)使用变量

要为变量赋值,使用 assignassign_add 方法以及 tf.Variable 类中的友元

6)共享变量

TensorFlow 支持两种共享变量的方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值