tf.train.GradientDescentOptimizer(learning_rate, use_locking=False,name=’GradientDescent’)
參數:
learning_rate: A Tensor or a floating point value. 要使用的學習率
use_locking: 要是True的話,就對於更新操作(update operations.)使用鎖
name: 名字,可選,默認是”GradientDescent”
minimize() 函數處理了梯度計算和參數更新兩個操作
compute_gradients() 函數用於獲取梯度
apply_gradients() 用於更新參數
sample
import tensorflow as tf
x = tf.Variable(2, name='x', dtype=tf.float32)
log_x = tf.log(x)
log_x_squared = tf.square(log_x)
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(log_x_squared)
init = tf.initialize_all_variables()
def optimize():
with tf.Session() as session:
session.run(init)
print("starting at", "x:", session.run(x), "log(x)^2:", session.run(log_x_squared))
for step in range(10):
session.run(train)
print("step", step, "x:", session.run(x), "log(x)^2:", session.run(log_x_squared))
optimize()