Keras 是一个Python深度学习框架,可以方便地定义和训练几乎所有类型地深度学习模型。Keras最开始是为研究人员开发的,其目的在于快速实验
keras具有以下重要特性:
1.相同的代码可以在CPU或GPU上无缝切换运行
2.具有用户友好的API,便于快速开发深度学习模型的原型
3.内置支持卷积网络(用于计算机视觉)、循环网络(用于序列处理)以及二者的任意组合。
4.支持任意网络架构:多输入或多输出模型、层共享、模型共享等。
1.1Keras\TensorFlow\Theano\CNTK
keras是一个模型级的库,为开发深度学习模型提供了高层次的构建模块。它依赖一个专门的、高度优化的张量库来完成这些运算,这个张量库就是Keras的后端引擎。Keras有三个后端实现:TensorFlow后端、Theano后端和微软认知工具包(CNTK)。这三个不同的后端引擎都可以无缝嵌入到Keras中。
通过TensorFlow,Keras可以在CPU和GPU上无缝运行,在CPU上运行时,TensorFlow本身封装了一个低层次的张量运算库,叫做Eigen;在GPU上运行时,TensorFlow封装了一个高度优化的深度学习运算库,叫做NVIDIA CUDA深度卷积神经网络(cuDNN)。
1.2使用Keras开发:概述
典型的Keras工作流程:
(1)定义训练数据:输入张量和目标张量
(2)定义层组成的网络,将输入映射到目标
(3)配置学习过程:选择损失函数、优化器和需要监控的指标
(4)调用模型的fit方法在训练数据上进行迭代
定义模型有两种方法:
1.一种是Sequential类定义的两层模型(仅用于层的线性堆叠)
2.下面是函数式API定义的相同模型
配置学习过程就是在编译这一步,你需要指定模型使用的优化器和损失函数,以及训练过程中想要监控的指标。
最后,学习过程就是通过fit()方法将输入数据的Numpy数组传入模型。
本文选自《python深度学习》