tensorflow优化细节(哪些变量要优化,优化比例)的手动控制方法

tensorflow中,从建好loss的graph到输入run()函数的op间还有一个slim.learning.create_train_op的步骤。了解这个步骤的内容就能打通整个tensorflow的优化流程,有助于我们深入理解tensorflow。

learning.create_train_op主要做两件事:计算梯度和把梯度用于更新Variable。 见下面代码

import tensorflow as tf
x1=tf.Variable(5.0)
x2=tf.Variable(3.0, name='chamo')
a = tf.constant(3.0)
y=a*x1+x2/a
opt = tf.train.GradientDescentOptimizer(learning_rate=0.1)
gradient_all=opt.compute_gradients(y)
var_grad=[] #拿到变量列表后可以做很多事情,比如修改大小,去掉某些不用于学习
for (g,v) in gradient_all:
    if 'chamo' in v.name:
        var_grad.append((g,v))
train_op = opt.apply_gradients(var_grad)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(4):
        sess.run(train_op)
        y_val, x1_val, x2_val=sess.run([y, x1, x2])
        print(y_val)
        print(x1_val)
        print(x2_val)

负责这两件事情的对象都是我们熟悉的optimizer

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值