本文摘自
Keras是一个高水平的神经网络库,使用Python进行编写,能够在Tensor或Theano的基础之上运行,它的开发目标是能够快速实验;
如果你需要一个深度学习库,使用Keras:
简单和快速的原型设计(通过整体的模块化、极简化艺术、和扩展性)
提供卷积神经网络和循环神经网络,以及二者的结合
支持任意的链接方案(包括多输入和多输出训练);
可以运行在CPU和GPU上;
Keras适用于Python 2.7-3.5.
指导原则(Guiding principles)
模块化
一个模块能够被独立理解为一个序列和一个图像,
极简主义
易扩展性
Python 协同性
开始(Getting started: 30 seconds to Keras)
Keras中的核心数据结构是模型,一种方式进行组织层次
模型的主要形式是Sequential model,,就是层次的线性叠加;
对于更复杂的架构,应该使用 Keras functional API.
这里是Sequential 模型:
from keras.models import Sequential
model = Sequential()
通过.add()进行层次叠加:
from keras.layers import Dense, Activation
model.add(Dense(output_dim=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(output_dim=10))
model.add(Activation("softmax"))
一旦你的模型看起来很好,使用.compile()函数进行学习过程的配置;
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
如果需要,你能够进一步配置优化器。Keras的核心原则是使事情变得合理的简单,它允许使用者需要时能够完全的自主;
from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
现在你能够用你的训练数据批次迭代:
model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)
可选择的,你能够手动的向你的模型添加批次;
model.train_on_batch(X_batch, Y_batch)
评价性能:
oss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32)
对新的数据生成预测:
classes = model.predict_classes(X_test, batch_size=32)
proba = model.predict_proba(X_test, batch_size=32)
构建一个问答系统,图像分类模型,神经图灵机,word2vec嵌入器或其他的任何模型是快速的;深度学习背后的思想是简单的,所有为什么它的实现是痛苦的?
关于Keras的教程:
Getting started with the Sequential model
Getting started with the functional API
在示例文件夹中会发现很多优秀的模型:关于记忆网络的问答系统,使用迭代LSTMs进行文本生成;
安装(Installation)
Keras使用下述依赖库:
numpy, scipy
pyyaml
HDF5 and h5py (optional, required if you use model saving/loading functions)
cuDNN:Optional but recommended if you use CNNs:
当使用TensorFlow后台:
Tensor Flow
See installation instructions.
当使用Theano 后台:
Theano
See installation instructions.
为了安装Keras,cd 到Keras文件夹,运行安装命令:
sudo python setup.py install
也可以从PyPi中进行安装:
sudo pip install keras
从Tensor Flow到Theano的转换(Switching from TensorFlow to Theano)
默认情况下,Keras使用Tensor Flow作为它的向量计算库,
下面这个指南用来配置Keras的后台;