当前位置:网站首页>TensorFlow2学习笔记:7、优化器
TensorFlow2学习笔记:7、优化器
2022-08-04 05:28:00 【不负卿@】
下面是 TensorFlow官方文档 中的优化器种类:
tensorflow内置优化器路径:
tf.train.GradientDescentOptimizer
这个类是实现梯度下降
算法的优化器。
tf.train.AdadeltaOptimizer
实现了Adadelta
算法的优化器,该算法不需要手动调优学习速率,抗噪声能力强,可以选择不同的模型结构。Adadelta
是对Adagrad
的扩展。Adadelta只累加固定大小的项,并且也不直接存储这些项,仅仅是计算对应的平均值。
tf.train.AdagradOptimizer
实现了AdagradOptimizer
算法的优化器,Adagrad会累加之前所有的梯度平方。它用于处理大的稀疏矩阵,Adagrad可以自动变更学习速率,只是需要设定一个全局的学习速率,但这并非是实际学习速率,实际的速率是与以往参数的模之和的开方成反比的。这样使得每个参数都有一个自己的学习率。
tf.train.MomentumOptimizer
实现了MomentumOptimizer
算法的优化器,如果梯度长时间保持一个方向,则增大参数更新幅度;反之,如果频繁发生符号翻转,则说明这是要减小参数更新幅度。可以把这一过程理解成从山顶放下一个球,会滑的越来越快。
tf.train.RMSPropOptimizer
实现了RMSPropOptimizer
算法的优化器,它与Adam类似,只是使用了不同的滑动均值。
tf.train.AdamOptimizer
实现了AdamOptimizer
算法的优化器,它综合了Momentum和RMSProp方法,对每个参数保留一个学习率与一个根据过去梯度信息求得的指数衰减均值。
如何选择:
如果数据是稀疏的,就用自适应方法,即 Adagrad
, Adadelta
, RMSprop
, Adam
。
RMSprop, Adadelta, Adam 在很多情况下的效果是相似的。
Adam 就是在 RMSprop 的基础上加了 bias-correction 和 momentum。
随着梯度变的稀疏,Adam 比 RMSprop 效果会好。
整体来讲,Adam 是最好的选择。
很多论文里都会用 SGD,没有 momentum 等。SGD 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。
如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法。
边栏推荐
猜你喜欢
随机推荐
oracle的number与postgresql的numeric对比
攻防世界MISC—MISCall
(六)递归
编程Go:return、break、continue
ISCC2021——web部分
实际开发中,客户要求密码输入框禁止粘贴~
关于事件捕获和事件冒泡的顺序,以及如何处理事件冒泡带来的影响
进程、线程、协程的区别和联系?
MySql--存储引擎以及索引
组原模拟题
关于 for in与for of 的差别以及如何使用
8.30难题留坑:计数器问题和素数等差数列问题
编程Go:内置打印函数 print、println 和 fmt 包中 fmt.Print、fmt.Println 的区别
攻防世界MISC———Dift
sql中group by的用法
MySQL事务详解(事务隔离级别、实现、MVCC、幻读问题)
Delphi-C side interesting menu operation interface design
网络大作业心得笔记
记一次flink程序优化
flink-sql所有表连接器