Keras简介
Keras是一个高级神经网络API,用Python编写,能够运行在TensorFlow或者Theano之上。它的开发重点是实现快速实验。从想法到结果延迟很小,是做好研究的重要途径。
如果您需要一个深度学习库,请使用Keras,因为:
- 允许简单快速的原型(通过用户友好,模块化和可扩展性)。
- 支持卷积神经网络和循环神经网络,以及两者的组合。
- 在CPU和GPU上无缝运行。
Keras当前兼容于:Python 2.7-3.5 。
Keras设计原则
- 用户友好 Keras是为人类而不是机器设计的API。它以用户体验为中心。 Keras遵循降低认知负担的最佳实践:它提供一致和简单的API,它可以最大限度地减少常见用例所需的用户操作数量,并根据用户错误提供清晰可行的反馈。
- 模块化 模块化是指独立的、完全可配置的模块的序列或图形,能够以很少的限制组合到一起。特别地,神经层,损失函数,优化器,初始化方案,激活函数,正则化方案都是独立的模块,您可以结合来创建新的模型。
- 易扩展性 很容易添加新模块(作为新类和函数),现有的模块提供了很多示例。能够轻松创建新模块,使得Keras适合高级研究。
- 使用Python语言 不需要单独的模型配置文件。模型使用Python代码进行描述,它是紧凑的,易于调试的,并且易于扩展。
30秒入门Keras
Keras的核心数据结构是一个模型(model ),是组织层次的一种方式。最简单的模型是序列(Sequential )模型,即多个层的线性堆叠。对于更复杂的体系结构,您应该使用Keras functional API ,,这允许构建层的任意图结构。
以下是序列Sequential 模型:
from keras.models import Sequential
model = Sequential()
堆叠层只需要调用`.add(),非常简单:
from keras.layers import Dense, Activation
model.add(Dense(units=64, input_dim=100))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('softmax'))
一旦您的模型堆叠好了,可以使用.compile() 配置其学习过程:
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
如果需要,您可以进一步配置优化器。 Keras的核心原则是使事情变得极为简单,同时允许用户在需要时完全控制(最终的控制是源代码的易扩展性)。
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))
您现在可以批量地迭代训练数据:
# x_train and y_train are Numpy arrays --just like in the Scikit-Learn API.
model.fit(x_train, y_train, epochs=5, batch_size=32)
或者,您可以手动将小批数据添加到您的模型中:
model.train_on_batch(x_batch, y_batch)
以一行代码评估模型的表现:
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)
或生成新数据的预测
classes = model.predict(x_test, batch_size=128)
构建问答系统,图像分类模型,神经图灵机或任何其他模型也是一样快。深度学习背后的思想很简单,所以没有必要有发杂的实现。
有关Keras的更深入的教程,您可以查看:
- Getting started with the Sequential model
- Getting started with the functional API
在代码库的示例文件夹中(examples folder),您会发现更高级的模型:使用记忆网络的问答,使用堆叠LSTM的文本生成等等。
Keras安装
Keras使用了如下依赖:
numpy , scipy
yaml
HDF5 和 h5py (可选,如果您使用模型保存/加载功能)
- 可选,但如果您使用CNN,建议使用:
cuDNN
- TensorFlow(使用
TensorFlow 作为后端)
- Theano(使用
Theano 作为后端)
要安装Keras,请cd 到Keras文件夹并运行install命令:
sudo python setup.py install
您还可以从PyPI安装Keras:
sudo pip install keras
默认情况下,Keras将使用TensorFlow作为张量操纵库。要切换到其他后端(Theano), 参考这里。 |