导读:Keras是目前深度学习研究领域非常流行的框架。
作者:史丹青
来源:大数据DT(ID:hzdashuju)
01 Keras简介与安装
Keras是目前深度学习研究领域非常流行的框架,相比于TensorFlow,Keras是一种更高层次的深度学习API。
Keras使用Python编写而成,包含了大量模块化的接口,有很多常用模型仅需几行代码即可完成,大大提高了深度学习的科研效率。它是一个高级接口,后端可支持TensorFlow、Theano、CNTK等多种深度学习基础框架,默认为TensorFlow,其他需要单独设置。
目前,谷歌已经将Keras库移植到TensorFlow中,也让Keras成了TensorFlow中的高级API模块。
Keras具备了三个核心特点:
允许研究人员快速搭建原型设计。
支持深度学习中最流行的卷积神经网络与循环神经网络,以及它们两者的组合。
可以在CPU与GPU上无缝运行。
Keras的口号是“为人类服务的深度学习”,在整体的设计上坚持对开发者友好,在API的设计上简单可读,将用户体验放在首位,希望研发人员可以以尽可能低的学习成本来投入深度学习的开发中。
Keras的API设计是模块化的,用户可以基于自己设想的模型对已有模块进行组装,其中如神经网络层、损失函数、优化器、激活函数等都可以作为模块组合成新的模型。与此同时,Keras的扩展性非常强大,用户可以轻松创建新模块用于科学研究。
目前最简单的引入Keras的方法就是直接使用最新版本的TensorFlow,可以通过以下引入方式在代码中使用Keras。
from tensorflow import keras
此外,Keras具有一个非常活跃的开发者社区,每天都会有大量的开源代码贡献者为Keras提供各种各样的功能。其中Keras-contrib是一个官方的Keras社区扩展版本,包含了很多社区开发者提供的新功能,为Keras的用户提供了更多选择。
Keras-contrib的新功能通过审核后都会整合到Keras核心项目中,如果现在就想在项目中使用,需要单独安装,同样,可以使用pip工具直接安装。
$ sudo pip install git+https://www.github.com/keras-team/keras-contrib.git
随着Karas加入TensorFlow,为了更好地进行代码上的整合,Keras-contrib项目被整合进了TensorFlow Addons。
TensorFlow Addons是一个针对TensorFlow核心库功能的补充,集成了社区最新的一系列方法。由于AI领域发展的速度快,一些最新的算法无法立刻移植到TensorFlow核心库中,所以会优先在TensorFlow Addons中进行发布。
可以使用pip的方式方便地安装TensorFlow Addons,从而使用一些高级的API接口。
$ pip install tensorflow-addons
02 Keras使用入门
Keras包含两种模型类型,第一种是序列模型,第二种是函数式模型。其中后者属于Keras的进阶型模型结构,适用于多入多出、有向无环图或具备共享层的模型,具体可参考Keras官方文档。本节中主要通过介绍序列模型来带读者学习Keras的