TensorFlow三种常用的优化器

匿名 (未验证) 提交于 2019-12-03 00:22:01

简介

目前TensorFlow支持11种不同的经典优化器(参考TensorFlow API tf.train文档

  • tf.train.Optimizer
  • tf.train.GradientDescentOptimizer
  • tf.train.AdadeltaOptimizer
  • tf.train.AdagtadOptimizer
  • tf.train.AdagradDAOptimizer
  • tf.train.MomentumOptimizer
  • tf.train.AdamOptimizer
  • tf.train.FtrlOptimizer
  • tf.train.ProximalGradientDescentOptimizer
  • tf.train.ProximalAdagradOptimizer
  • tf.train.RMSProOptimizer


介绍三种常用优化器

tf.train.GradientDescentOptimizertf.train.MomentumOptimizer、tf.train.AdamOptimizer

1. tf.train.GradientDescentOptimizer

这个优化器主要实现的是 梯度下降算法

__init__(     learning_rate,     use_locking=False,     name='GradientDescent' )
  • learning_rate: (学习率)张量或者浮点数
  • use_locking: 为True时锁定更新
  • name: 梯度下降名称,默认为"GradientDescent".

tf.train.MomentumOptimizer

动量梯度下降算法 ,简述动量Momentum梯度下降

Δxt=ρΔxt1ηgt
其中,ρ
η

ρ

η

__init__(     learning_rate,     momentum,     use_locking=False,     name='Momentum',     use_nesterov=False )
  • learning_rate: (学习率)张量或者浮点数
  • momentum: (动量)张量或者浮点数
  • use_locking为True时锁定更新
  • name梯度下降名称,默认为 "Momentum".
  • use_nesterov

tf.train.AdamOptimizer

实现 Adam优化算法( Adam 这个名字来源于 adaptive moment estimation,自适应矩估计。)

可参考博客梯度优化算法Adam

__init__(     learning_rate=0.001,     beta1=0.9,     beta2=0.999,     epsilon=1e-08,     use_locking=False,     name='Adam' )
  • learning_rate: (学习率)张量或者浮点数
  • beta1
  • beta2: The exponential decay rate for the 2nd moment estimates.
  • epsilon: A small constant for numerical stability. This epsilon is "epsilon hat" in the Kingma and Ba paper (in the formula just before Section 2.1), not the epsilon in Algorithm 1 of the paper.
  • use_locking: 为True时锁定更新
  • name: 梯度下降名称,默认为 "Adam".




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!