TensorFlow - 优化器
优化器是扩展的 class,其中包含用于训练特定模型的附加信息。optimizer class 使用给定的参数进行初始化,但重要的是要记住,不需要任何 Tensor。优化器用于提高训练特定模型的速度和性能。
TensorFlow 的基本 optimizer 是 −
tf.train.Optimizer
这个 class 定义在 tensorflow/python/training/optimizer.py 的指定路径中。
TensorFlow 中的一些 optimizer 如下 −
- Stochastic Gradient descent
- Stochastic Gradient descent with gradient clipping
- Momentum
- Nesterov momentum
- Adagrad
- Adadelta
- RMSProp
- Adam
- Adamax
- SMORMS3
我们将重点关注 Stochastic Gradient descent。创建相同 optimizer 的示例说明如下 −
def sgd(cost, params, lr = np.float32(0.01)):
g_params = tf.gradients(cost, params) # 计算梯度
updates = []
for param, g_param in zip(params, g_params):
updates.append(param.assign(param - lr*g_param)) # 更新参数
return updates
基本参数在特定 function 中定义。在后续章节中,我们将重点讨论 Gradient Descent Optimization 以及 optimizer 的实现。