tensorflow中tf.Variable()函数的用法

参考文献

tensorflow之tf.Variable()函数

简述

tf.Variable()函数用于创建变量(Variable),变量是一个特殊的张量(),其可以是任意的形状和类型的张量。
语法的格式如下:

tf.Variable.init(initial_value, trainable=True, 
collections=None, validate_shape=True, name=None))

注意: 在启动图时(进行操作之前),所有的变量必须被明确定义.变量常常用来存储和更新参数,在计算图过程中其数值会一直保存至程序运行结束,这点正式区别一般的张量。一般的Tensorflow张量在运行过程中仅仅是从计算图中流过,并不会被保存下来;涉及到变量的相关操作必须通过session会话进行控制。

特别注意:在tensorflow中变量的定义和初始化是分开的.

初始化变量:之前是用tf.initialize_all_variables()函数,但是在2017年3月2号之后,该函数不再使用,用 tf.global_variables_initializer() 替代 tf.initialize_all_variables()

tf.global_variables_initializer()用于初始化所有变量;w.initializer用于初始化单个变量。

此外: 也可以使用 tf.get_variable ()函数来定义变量。实质上,tf.Variable()是真正的定义变量,而tf.get_variable()是获取变量,主要设计目的是用于共享变量,但如果获取不到就等同于新定义变量。
此外,使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会处理冲突,而会报错
此外的此外,使用tf.Variable()时,如若检测到重名现象,系统会自动处理,处理方式一般是在重名后面加上"_n"。然而,tf.get_variable()发现重名冲突直接报错。

实例

使用tf.Variable()创建变量

import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()

w = tf.Variable([6,8,6])	#创建变量w
print(w)	#查看变量的shape,而不是值。
with tf.Session() as sess:
    sess.run(w.initializer)		#初始化变量
    print(sess.run(w))	#查看变量的值

输出:

'''
<tf.Variable 'Variable:0' shape=(3,) dtype=int32_ref>
[6 8 6]
'''

tf.get_variable()与tf.Variable()

import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()

import tensorflow as tf

V1 = tf.Variable([1,2,3],name="V1")
V2 = tf.Variable([2,3,4],name="V1")
V3 = tf.Variable([3,4,5],name="V1_1")

print("V1:",V1.name)
print("V2:",V2.name)
print("V3:",V3.name)

输出:

'''
V1: V1:0
V2: V1_1:0
V3: V1_1_1:0
'''

小结

  • 一般情况使用参数initial_value与name就足够了
  • tf.get_variable()与tf.Variable()都用来定义变量的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值