13 keras优化器

作者: readilen | 来源:发表于2017-06-03 18:24 被阅读121次

原文地址optimizers(优化器)。机器学习包括两部分内容,一部分是如何构建模型,另一部分就是如何训练模型。训练模型就是通过挑选最佳的优化器去训练出最优的模型。
Keras包含了很多优化方法。比如最常用的随机梯度下降法(SGD),还有Adagrad、Adadelta、RMSprop、Adam等。下面通过具体的代码介绍一下优化器的使用方法。最重要的就是SGD,其他的优化器有兴趣的可以自行了解一下。

一、优化器的使用方法

在编译一个Keras模型时,优化器是2个参数之一(另外一个是损失函数)。看如下代码:

model = Sequential()  
model.add(Dense(64, init='uniform', input_dim=10))  
model.add(Activation('tanh'))  
model.add(Activation('softmax'))  
   
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)  
model.compile(loss='mean_squared_error', optimizer=sgd) 

这个例子中是在调用compile之前实例化了一个优化器。我们也可以通过传递名字的方式调用默认的优化器。代码如下:

# passoptimizer by name: default parameters will be used  
model.compile(loss='mean_squared_error', optimizer='sgd')  

二、基类

keras.optimizers.Optimizer(**kwargs)  

所有的优化器都继承自上面这个带有keyword参数的类。当然基类是不能用来训练模型的。

三、SGD(随机梯度下降优化器,性价比最好的算法)

keras.optimizers.SGD(lr=0.01, momentum=0., decay=0., nesterov=False)  

参数:

  • lr :float>=0,学习速率
  • momentum :float>=0 参数更新的动量
  • decay : float>=0 每次更新后学习速率的衰减量
  • nesterov :Boolean 是否使用Nesterov动量项

四、Adagrad(参数推荐使用默认值)

keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)  

参数:

  • lr : float>=0,学习速率
  • epsilon :float>=0
  • decay : float>=0 每次更新后学习速率的衰减量

五、Adadelta(参数推荐使用默认值)

keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-6)  

参数:

  • lr :float>=0,学习速率
  • rho : float>=0
  • epsilon :float>=0 模糊因子
  • decay : float>=0 每次更新后学习速率的衰减量

六、RMSprop(参数推荐使用默认值)

keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-6)  

参数:

  • lr:float>=0,学习速率
  • rho : float>=0
  • epsilon : float>=0 模糊因子
  • decay : float>=0 每次更新后学习速率的衰减量

七、Adam(参数推荐使用默认值)

keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8)  

参数:

  • lr : float>=0,学习速率
  • beta_1, beta_2:floats, 0 < beta < 1 通常都是接近于1
  • epsilon :float>=0 模糊因子
  • decay : float>=0 每次更新后学习速率的衰减量

八、Adamax(参数推荐使用默认值)

keras.optimizers.Adamax(self, lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0, **kwargs)   

参数:

  • lr : float>=0,学习速率
  • beta_1, beta_2:floats, 0 < beta < 1 通常都是接近于1
  • epsilon :float>=0 模糊因子
  • decay : float>=0 每次更新后学习速率的衰减量

相关文章

  • 13 keras优化器

    原文地址optimizers(优化器)。机器学习包括两部分内容,一部分是如何构建模型,另一部分就是如何训练模型。训...

  • 0003-keras自定义优化器

    原文 keras优化器的代码 自定义一个SGD优化器 实现“软batch” 假如模型比较庞大,自己的显卡最多也就能...

  • 23、keras

    一、keras 1.关于Keras 二、代码 代码: 声明模型、损失、准确率、优化算法Adam 定义优化过程 fo...

  • 如何选择Keras的优化器

    在对模型进行编译(Compile)的过程中,要选择并指定优化器。优化器决定模型如何根据其看到的数据和自身的损失函数...

  • 15 keras模型

    原文地址介绍完了优化器和目标函数,那么剩下的就是训练模型了。这一小节,我们来看一下Keras的Models是如何使...

  • tensorflow模型建立与训练

    线性分类器Model 数据获取及预处理: tf.keras.datasets 模型的构建: tf.keras.Mo...

  • DL4J中文文档/Keras模型导入/正则化器

    支持的正则化器 DL4J模型导入支持所有Keras正则化器。 l1 l2 l1_l2 正则化器映射可以在Keras...

  • 基于keras的线性方程回归模型

    0.完整代码 下面一段代码实现了2个功能:1.用keras库编程实现拟合线性方程的回归模型;2.对比了4种优化器的...

  • Keras GAN 同时储存模型和优化器信息

    Github 上有一个很好的开源项目[https://github.com/eriklindernoren/Ker...

  • 机器学习系统或者SysML&DL笔记(一)

    前言 在使用过TVM、TensorRT等优秀的机器学习编译优化系统以及Pytorch、Keras等深度学习框架后,...

网友评论

    本文标题:13 keras优化器

    本文链接:https://www.haomeiwen.com/subject/vwdmfxtx.html