优化函数
损失函数
loss = ...
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1)
train_op =optimizer.minimize(loss,global_step=global_step)
其中minimize()包含两个步骤:
1.计算loss对指定val_list的梯度(导数),返回元组列表[(gradient,variable),…]
compute_gradients(loss,val_list)
注:tf.gradients(loss, tf.variables)与compute_gradients(loss,val_list)作用类似,但是只返回梯度
2.用计算得到的梯度来更新对应的变量(权重)
optimizer.apply_gradients(grads_and_vars, global_step=global_step, name=None)将
compute_gradients(loss,val_list)的返回值作为输入对variable更新
注意:在程序中global_step初始化为0,每次更新参数时,自动加1