Keras入门级简介

Keras是一个Python深度学习框架,可以方便定义和训练几乎所有类型的深度学习模型。最开始Keras是为研究人员开发,其目的就是为了快速市验。

Keras具有以下重要特性:

1)相同的代码可以在CPU或GPU上无缝切换运行。

2)具有用户友好的API,便于快速开发深度学习的原型。

3)内置支持卷积网络(用于计算机视觉)、循环网络(用于序列处理)以及二者的任意组合。

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

PS:Keras基于MIT许可证发部,即可以在商业项目中免费使用。它与所有版本的Python都兼容。(详情见:tensorflow和keras以及python对应版本号

Keras入门级简介

2019年深度学习框架的热度增长:

Keras入门级简介

Keras、TensorFlow、Theano和CNTK

Keras 是 一 个模型级(model - level)的库,为开发深度学习模型提供了高层次的构建模块它不处理张量操作、求微分等低层次的运算。相反,它依赖于 一 个专门的、高度优化的张量库 来完成这些运算,这个张量库就是 Keras 的后端引擎(backend engine)。Keras 没有选择单个张 量库并将 Keras 实现与这个库绑定,而是以模块化的方式处理这个问题(见下图 )。因此,几 个不同的后端引擎都可以无缝嵌入到 Keras 中。目前,Keras 有三个后端实现:TensorFlow 后端、 Theano 后端和微软认知工具包(CNTK,Microsoft cognitive toolkit)后端。未来 Keras 可能会扩 展到支持更多的深度学习引擎。

Keras入门级简介

通过 TensorFlow(或 Theano、CNTK),Keras 可以在 CPU 和 GPU 上无缝运行。在 CPU 上运行 时,TensorFlow 本身封装了 一 个低层次的张量运算库,叫作 Eigen;在 GPU 上运行时,TensorFlow 封装了 一 个高度优化的深度学习运算库,叫作 NVIDIA CUDA 深度神经网络库(cuDNN)。

典型的 Keras 工作流程。

(1) 定义训练数据:输入张量和目标张量。

(2) 定义层组成的网络(或模型),将输入映射到目标。

(3) 配置学习过程:选择损失函数、优化器和需要监控的指标。

(4) 调用模型的 fit 方法在训练数据上进行迭代。

定义模型有两种方法: 一 种是使用 Sequential 类(仅用于层的线性堆叠,这是目前最常 见的网络架构),另 一 种是函数式 API(functional API,用于层组成的有向无环图,让你可以构 建任意形式的架构)。

 

参考:https://www.openi.org.cn/html/2019/zixun_0510/137.html