TensorFlow 优化器怎么用?

文章导读
Previous Quiz Next 优化器是扩展的 class,其中包含用于训练特定模型的附加信息。optimizer class 使用给定的参数进行初始化,但重要的是要记住,不需要任何 Tensor。优化器用于提高训练特定模型的速度和性能。
A A

TensorFlow - 优化器



Previous
Quiz
Next

优化器是扩展的 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 的实现。