前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Keras系列(一):介绍

Keras系列(一):介绍

作者头像
MeteoAI
发布2019-07-22 18:24:14
1K0
发布2019-07-22 18:24:14
举报
文章被收录于专栏:MeteoAIMeteoAIMeteoAI

上次铁柱分享了一个使用深度学习库Keras预测风功率的案例,有小伙伴表示一脸懵逼,没关系,其实Keras上手很快,毕竟外卖小哥都可以上手深度学习,化身TF BOY了(TensorFlow BOY)。下面有请铁柱介绍Keras:

Keras是什么

Keras是深度学习建模的一个上层建筑,其后端可以灵活使用CNTK、TensorFlow或者Theano。这样就可以避免不同深度学习框架的差异而集中于建模过程。

铁柱不禁想起了“悲惨”童年时期酷爱的游戏厅街机《拳皇97》、《忍者棒球》,要绝杀小伙伴必须经过各种复杂的操作放出必杀技,结果被游戏大佬各种虐,可是现如今,如果把街机通过模拟器移植到电脑上,玩家定义好了连招按键,只需点击某个按钮就能轻松施展出各种炫酷的骚操作,游戏操作简化到无趣。

这里打一个不恰当的比方,前者相当于tensorflow等后端,后者类比于keras,街机模拟器(keras)把一些常用必杀技(tensorflow等后端中常用的模型、操作等)进行了封装,让我们在游戏(深度学习)的世界里快乐玩耍。好吧,铁柱好像暴露了年龄和癖好,以前可没少挨父母揍啊

图1 忍者棒球

Keras特点

下面言归正传,Keras 最开始是为研究人员开发的,其目的在于快速实验,具有以下重要特性:

(1) 相同的代码可以在 CPU 或 GPU 上都可以顺利运行,做到无缝切换。例如,对于特定任务,某个后端的速度更快,那么我们就可以无缝切换过去。推荐使用 TensorFlow 作为默认后端,因为它的应用最广泛,可扩展,可用于生产环境,tensorflow的模型文件可在java环境中运行。

(2) 具有用户友好的API,便于快速开发深度学习模型的原型,比如鼎鼎大名的VGG16/ VGG19/ InceptionV3,调参方便、简单。

(3) 内置支持卷积网络(主要用于计算机视觉)、循环网络(主要用于序列处理)以及二者的任意组合,比如CNN-LSTM,LSTM-CNN,Bi-LSTM。

(4)支持任意网络架构:多输入或多输出模型、层共享、模型共享等。这也就是说,Keras能够构建任意深度学习模型,无论是生成式对抗网络还是神经图灵机。

图2 keras底层后端

如图2,TensorFlow、CNTK 和 Theano 是当今深度学习的几个主要平台。Theano由蒙特利尔大学的MILA 实验室开发,TensorFlow 由 Google 开发,CNTK 由微软开发。你用 Keras 写的每一段代码都可以在这三个后端上运行,无需任何修改。

在 CPU 上运行时,Tensor Flow 本身封装了一个低层次的张量运算库,叫作 Eigen;在 GPU 上运行时,TensorFlow封装了一个高度优化的深度学习运算库,叫作 NVIDIA CUDA 深度神经网络库(cuDNN)。

Keras的缺点与选择

Keras的缺点:keras社区没有TensorFlow活跃,文档部分内容不是太容易理解,比如TimeDistributed,官方的解释晦涩难懂。因此要深度理解Keras的参数和模型的具体结构,还是要看源码。目前,Keras 已经成为了TensorFlow的官方API,也就是说最新的TensorFlow自带keras,可不用再分外安装keras了

到底该选择TensorFlow还是Keras,是深度学习初学者经常纠结的一个问题,可参考数据科学家Aakash Nain的建议:

除非你正从事研究性质的工作或开发某种特殊种类的神经网络,选用TersorFlow,如果不是,那么请选择Keras(相信我,我是一个Keras党!!)使用Keras快速构建非常复杂的模型仍然超容易。

图3 Keras与后端

如果你想要更精细地控制你的网络,或者想要仔细查看你的网络发生了什么,那么TF是正确的选择(不过有时TF的语法会让你做噩梦的)。

不过,现在TF已经集成了Keras,所以更明智的做法是使用tf.contrib.Keras创建你的网络,然后根据需要在你的网络中插入纯TensorFlow。

简而言之,tf.contrib.keras + tf = 你所需要的一切


参考资料

Keras 后端:https://keras.io/zh/backend/

TensorFlow还是Keras:https://www.jqr.com/article/000104

深度学习之Keras入门篇:https://blog.csdn.net/ zdy0_2004/ article/details/74736656

Keras中文资料百度云链接:https://pan.baidu.com/s/1Vw6JaDbveyOHs4JuaaNcWA

提取码:a1zu

- End -

本文由MeteoAI原创首发,未经允许禁止转载!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MeteoAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Keras是什么
  • Keras特点
  • Keras的缺点与选择
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档