keras介绍
第一部分-简介
1.Keras 是一个模型级(model-level)的库,为开发深度学习模型提供了高层次的构建模块。
它不处理张量操作、求微分等低层次的运算。相反,它依赖于一个专门的、高度优化的张量库
来完成这些运算,这个张量库就是Keras 的后端引擎(backend engine)。
目前,Keras 有三个后端实现:TensorFlow 后端、Theano 后端和微软认知工具包(CNTK,Microsoft cognitive toolkit)后端。
TensorFlow、CNTK 和Theano 是当今深度学习的几个主要平台。Theano 由蒙特利尔大学的
MILA 实验室开发,TensorFlow 由Google 开发,CNTK 由微软开发。
通过TensorFlow(或Theano、CNTK),Keras 可以在CPU 和GPU 上无缝运行。在CPU 上运行
时,TensorFlow 本身封装了一个低层次的张量运算库,叫作Eigen;在GPU 上运行时,TensorFlow
封装了一个高度优化的深度学习运算库,叫作NVIDIA CUDA 深度神经网络库(cuDNN)
2.keras的训练过程:
(1) 定义训练数据:输入张量和目标张量。
(2) 定义层组成的网络(或模型),将输入映射到目标。
(3) 配置学习过程:选择损失函数、优化器和需要监控的指标。
(4) 调用模型的fit 方法在训练数据上进行迭代。
定义模型有两种方法:一种是使用Sequential 类(仅用于层的线性堆叠,这是目前最常
见的网络架构),另一种是函数式API(functional API,用于层组成的有向无环图,让你可以构建任意形式的架构)。
第二部分-Sequential类的重要函数
1.add函数
定义:add(self, layer)
用途:向模型中添加一个层
参数layer是Layer对象,也即是层
2.pop函数
定义:pop(self)
用途:弹出模型的最后一层,无返回值,该方法一般很少用到。
3.compile函数
定义:
compile(self, optimizer, loss, metrics=None, sample_weight_mode=None)
该方法编译用来配置模型的学习过程,其参数有以下这些:
optimizer:字符串(预定义优化器名)