Tensorflow详解(三)

变量——作用就是保存网络的参数,网络参数的更新就是相应变量的重新赋值

1.创建变量

  1.1变量名=tf.Variable(初始值)

   初始值的获取,方法1,tensorflow提供了各种生成函数

                             方法2,通过其他变量的初始值来初始化新的变量:变量名.initialized_value()

    1.2 tf.get_variable(name,shape,dtype,initializer,regularizer,trainable,collections,

                                  caching_device,partitoner,validate_shape,custom_getter)创建或获取变量

2.初始化所有变量

   init_op=tf.global_variables_initializer()

3.在会话中运行

  sess.run(  init_op)

说明:tensorflow中所有变量都会自动被加入到GraphKeys.VARIABLES集合;通过all_variables()函数可以获取当前计算图上所有变量。如果声明变量时参数trainable=True,那么这个变量将会加入GraphKeys.TRAINABLE_VARIABLES集合;通过trainable_variables()函数得到该集合中全部内容

函数详解:


tf.get_variable() 

Args:

        name:变量的名称。
        shape:变量的形状。
        dtype: 变量的类型(默认为DT_FLOAT)。
        ininializer:如果创建了则用它来初始化变量。
        regularizer:A(Tensor - > Tensor或None)函数;将它应用于新创建的变量的结果将添加到

                         集合 tf.GraphKeys.REGULARIZATION_LOSSES中,并可用于正则化。
        trainable:如果为True,还将变量添加到图形集合GraphKeys.TRAINABLE_VARIABLES(参见tf.Variable)。
        collections:要将变量添加到的图表集合列表。默认为[GraphKeys.GLOBAL_VARIABLES](参见tf.Variable)。
        caching_device:可选的设备字符串或函数,描述变量应被缓存以供读取的位置。默认为Variable的设备。如果不是None,则在另一台设备上缓存。典型用法是在使用变量驻留的Ops的设备上进行缓存,以通过Switch和其他条件语句进行重复数据删除。
        partitioner:可选callable,接受完全定义的TensorShape和要创建的Variable的dtype,并返回每个轴的分区列表(当前只能对一个轴进行分区)。
        validate_shape:如果为False,则允许使用未知形状的值初始化变量。如果为True,则默认为initial_value的形状必须已知。
        use_resource:如果为False,则创建常规变量。如果为true,则使用定义良好的语义创建实验性ResourceVariable。默认为False(稍后将更改为True)。在Eager模式下,此参数始终强制为True。
        custom_getter:Callable,它将第一个参数作为true getter,并允许覆盖内部get_variable方法。 custom_getter的签名应与此方法的签名相匹配,但最适合未来的版本将允许更改:def custom_getter(getter,* args,** kwargs)。也允许直接访问所有get_variable参数:def custom_getter(getter,name,* args,** kwargs)。一个简单的身份自定义getter只需创建具有修改名称的变量是:python def custom_getter(getter,name,* args,** kwargs):return getter(name +'_suffix',* args,** kwargs)
 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值