Tensorflow---变量

1.tf.Variable(0,name=‘steps’,training=True)

创建变量,初始值为0,名称为steps
steps = tf.Variable(0,name='steps',training=True)

2.optim=tf.train.AdamOptimizer(learning_rate=lr)

使用adam优化器,学习率为lr,这里的lr有俩种方式定义,第一种为固定区间内定义学习率tf.piecewise_constant(global_step,qvjian,value)
第二种为学习率指数衰减tf.trian.exponential_decay

3.tf.trainable_variables(),tf.all_variables()

tf.trainable_variables()查看可训练的变量,可以在tf.trainable_variables(scope='var')指定查看scope中的变量。
tf.all_variables()查看所有变量,包括不用训练的lr这种,lr在定义的时候可以选择trainable=False,意思是不进行训练。

4.optim.compute_gradients这里为什么要把梯度摘出来计算,原因是,我们要定义训练模式,以提高训练的速度,因此需要把梯度摘出来。

grads = optim.compute_gradients(loss,var_list = train_varable)
计算loss的梯度,var_list为正向传播的可训练参数。
update=tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update):
    train_op = optim.apply_gradients(grads_ave,steps)
tf.GraphKeys.UPDATE_OPS:这是tensorflow的计算图中内置的一个集合,其中会保存一些需要在训练之前完成的操作,并配合tf.control_dependencies()函数使用。
tf.control_dependencies():指定某些操作的依赖关系。
tf.get_collection():从一个collection中取出全部变量,形成列表,key参数中输入的是collection的名称。该函数常常与tf.get_variable()和tf.add_to_collection()一起使用
optim.apply_gradients(grads_ave,steps):返回一个梯度更新。
这个train_op放到sess.run(train_op)执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值