Keras系列(一):介绍

2019-07-22 18:24:14 浏览数 (1)

上次铁柱分享了一个使用深度学习库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原创首发,未经允许禁止转载!

0 人点赞