Keras:基于theano和tensorflow的深度学习库
- Keras是一个高层神经网络库,由Python编写并基于theano和tensorflow
- Keras适用的Python版本是python2.7-python3.5
Keras的一个重要性质是模块化设计,模块可理解为独立的序列或图,完全可配置的模块以最少的代价自由组织在一起。网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用他们快速构建模型。(有点类似于软件开发过程中的”低耦合,高内聚“的思想)
theano http://www.deeplearning.net/software/theano_versions/0.9.X/install.html#install
tensorflow https://github.com/tensorflow/tensorflow#download-and-setup
keras快速上手:
keras的核心数据结构是模型,模型是一种组织网络层的方式。keras的主要数据模型是Sequential,Sequential是一系列网络层按顺序构成的栈。
- Sequential模型
# 模型一般都在keras.models这个包中 from keras.models import Sequential model=Sequential()
- add()堆叠网络层
# 网络层一般都在keras.layers这个包中 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('relu'))
- compile()编译模型
model.compile(loss='categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
#loss损失函数 #optimizer优化器
from keras.optimizer import SGD model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
- fit()训练模型
# 模型训练 model.fit(X_train,y_train,nb_epoch=5,batch_size=32)
- evaluate()评估模型
# 模型评估
loss_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)