2019獨角獸企業重金招聘Python工程師標準>>>
Keras深度學習框架中文文檔
- Keras官網:http://keras.io/
- Github項目:https://github.com/fchollet/keras
- 中文文檔主頁:http://keras-cn.readthedocs.io/en/latest/
- Github中文文檔:https://github.com/MoyanZitto/keras-cn.git
快速開始Keras
Keras的核心數據結構是“模型”,模型是一種組織網絡層的方式。Keras中主要的模型是Sequential模型,Sequential是一系列網絡層按順序構成的棧。Sequential模型如下:
from keras.models import Sequentialmodel = Sequential()
將一些網絡層通過.add()堆疊起來,就構成了一個模型:
from keras.layers.core import Dense, Activationmodel.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))
完成模型編譯后,我們在訓練數據上按batch進行一定次數的迭代訓練,以擬合網絡:
model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)
當然,我們也可以手動將一批批的數據送入網絡中訓練,這時候需要使用:
model.train_on_batch(X_batch, Y_batch)
隨后,我們可以使用一行代碼對我們的模型進行評估,看看模型的指標是否滿足我們的要求:
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)