文档章节

Keras 深度学习框架的优化器(optimizers)

openthings
 openthings
发布于 2016/09/12 15:46
字数 557
阅读 886
收藏 0

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

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

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

 参数:

lr :float>=0,学习速率
rho : float>=0
epsilon :float>=0 模糊因子

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

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

参数:

lr:float>=0,学习速率
rho : float>=0
epsilon : 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 模糊因子

© 著作权归作者所有

openthings
粉丝 301
博文 1110
码字总数 636345
作品 1
东城
架构师
私信 提问
深度学习框架Keras学习系列(三):Keras神经网络框架

Introduction Installation Fast Overview Sequential model Keras官方网站 Introduction Keras是一个高级的神经网络API,用Python实现,并可以基于TensorFlow,CNTK与Theano等计算框架运行。...

qq_32690999
2017/12/21
0
0
Keras 深度学习框架中文文档

Keras深度学习框架中文文档 Keras官网:http://keras.io/ Github项目:https://github.com/fchollet/keras 中文文档主页:http://keras-cn.readthedocs.io/en/latest/ Github中文文档:https......

openthings
2016/09/12
555
0
易用的深度学习框架Keras简介及使用

Keras是基于Python的一个深度学习框架,内核采用Theano和Tensorflow,可以进行切换。 1. Keras简介 Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,是一个高...

openthings
2016/01/10
1K
0
Keras深度学习实践1—Keras介绍和“Hello world”

内容参考以及代码整理自“深度学习四大名“著之一《Python深度学习》 一、Keras简介 Keras是一个python深度学习框架,可以方便的定义和训练几乎所有的深度学习模型。 Keras具有以下重要特性:...

小可哥哥V
04/08
0
0
Keras之小众需求:自定义优化器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/82634878 作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神...

Paper_weekly
2018/09/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

热点图heatMap.js V2.0 研究笔记 及应用

https://blog.csdn.net/rongchaoliu/article/details/47830799 调用方法 function init() { $.ajax({ url: "${request.contextPath}/refresh?type=1", type: "get",......

yan_liu
30分钟前
3
0
Kubernetes 支持 OpenAPI 的新功能

Open API 让 API 提供者可以定义自己的操作和模型,并让开发者可以自动化的生成喜欢语言的客户端,用以和 API 服务器通信。Kubernetes 已经支持 Swagger 1.2(OpenAPI 规范的前身)有一段时间...

xiangyunyan
34分钟前
0
0
深入分析Zookeeper原理

本章重点: 1.了解zookeeper 及zookeeper 的设计猜想 2. zookeeper集群角色 3. 深入分析ZAB协议 4. 从源码层面分析leader选举的实现过程 5. 关于zookeeper的数据存储  Zookeeper的由...

须臾之余
36分钟前
2
0
Spring Cloud Eureka 常用配置详解,建议收藏!

前几天,栈长分享了 《Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!》,今天来分享下 Spring Cloud Eureka 常用的一些参数配置及说明。 Spring Boot 的配置参考Java技术栈微信...

Java技术栈
54分钟前
3
0
分布式项目(七)consul 服务注册与发现

说到分布式自然就离不开分布式和微服务的话题,简单聊一下。 微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,...

lelinked
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部