变量初始化变量的三种方式

tf.Variable() :一般变量用这种方式定义。 * 可以选择 trainable 类型 *
tf.get_variable() :一般都是和 tf.variable_scope() 配合使用,从而实现变量共享的功能。 * 可以选择 trainable 类型 *
【注意:】tf.get_variable()和tf.Variable()不是一回事!!两个的区别有好几处:
①比如,tf.Variable()在定义的时候必须初始化,而tf.get_variable()定义的时候可以先不进行初始化操作。
想要进行变量共享,必须使用tf.get_variable()实现,搭配命名空间,以及reuse关键字的使用,就可以实现变量的共享;而tf.Variable()每次都会生成一个新的变量。

占位符[tf.placeholder()]并不是变量,待输入训练常量。** trainable==False **

 

变量的初始化操作的几种方式:
1.在定义的时候直接初始化,比如

b = tf.get_variable("b", b.shape, trainable=False, initializer=tf.constant_initializer(b))
2.在会话中使用sess.run()进行初始化,比如

sess.run(tf.global_variables_initializer())  # 初始化全局变量
sess.run(tf.local_variables_initializer())  # 初始化本地变量

3.如果只想要初始化一部分指定变量,使用:
sess.run(tf.variables_initializer(var_list))
其中,var_list是需要初始化的变量列表。

变量在使用前一定要进行初始化,且变量的初始化必须在模型的其它操作运行之前完成。变量的初始化有三种方式,如程序2-13所示:

程序2-13:

初始化全部变量、初始化变量的子集以及初始化单个变量。首先,global_variables_initializer()方法是不管全局有多少个变量,全部进行初始化,是最简单也是最常用的一种方式;variables_initializer()是初始化变量的子集,相比于全部初始化化的方式更加节约内存;Variable()是初始化单个变量,函数的参数便是要初始化的变量内容。通过上述的三种方式,我们便可以实现变量的初始化,放心的使用变量了。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值