Keras是由纯python编写的基于theano/tensorflow的深度学习框架。Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结果,如果有如下需求,可以优先选择Keras:
a)简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
b)支持CNN和RNN,或二者的结合
c)无缝CPU和GPU切换
Keras模块结构:
使用Keras搭建一个神经网络:
【【【一些概念:
(1)目前主要有两种方式来表示张量: a) th模式或channels_first模式,Theano和caffe使用此模式。b)tf模式或channels_last模式,TensorFlow使用此模式。
例:对于100张RGB3通道的16×32(高为16宽为32)彩色图,th表示方式:(100,3,16,32);tf表示方式:(100,16,32,3)。唯一的区别就是表示通道个数3的位置不一样。
(2)Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。 a)序贯模型(Sequential):单输入单输出,一条路通到底,层与层之间只有相邻关系,没有跨层连接。这种模型编译速度快,操作也比较简单 b)函数式模型(Model):多输入多输出,层与层之间任意连接。这种模型编译速度慢。
(3)neural layers(神经层), cost functions(损失函数), optimizers(优化器), initialization schemes(初始化方案), activation functions(激活函数), regularization(正则化项)在keras中都是独立的模块,可以自由组合。】】】