一、keras 介紹
Keras 是一個用 Python 編寫的進階神經網路功能 API,它能夠以 TensorFlow, CNTK, 或者 Theano 作為後端運行。Keras 的開發重點是支援快速的實驗。能夠以最小的時延把你的想法轉換為實驗結果,是做好研究的關鍵。
如果你有如下需求,請選擇 Keras:
- 允許簡單而快速的原型設計(方便使用,高度模組化,可擴充性)。
- 同時支援卷積神經網路和迴圈神經網路,以及兩者的組合。
- 在CPU和GPU上無縫運行與切換。
Keras 相容的 Python 版本: Python 2.7-3.6。
二、快速開始keras
Keras 的核心資料結構是 model,一種組織網路層的方式。最簡單的模型是 Sequential 模型,它是由多網路層線性堆疊的棧。對於更複雜的結構,你應該使用 Keras 函數式 API,它允許構建任意的神經網狀圖。
Sequential 模型如下所示:
from keras.models import Sequentialmodel = Sequential()
可以簡單地使用 .add() 來堆疊模型:
from keras.layers import Densemodel.add(Dense(units=64, activation='relu', input_dim=100))model.add(Dense(units=10, 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 學習和實戰
有關 Keras 更深入的教程,請查看:
keras中文官方文檔:https://keras.io/zh/
keras作者寫的書籍:https://github.com/fchollet/deep-learning-with-python-notebooks
四、安裝keras
在安裝 Keras 之前,請安裝以下後端引擎之一:TensorFlow, Theano,或者 CNTK。我們推薦 TensorFlow 後端。 TensorFlow 安裝指引。 Theano 安裝指引。 CNTK 安裝指引。
然後你就可以安裝 Keras 本身了。有兩種方法安裝 Keras:
使用 PyPI 安裝 Keras (推薦):
sudo pip install keras
如果你使用 virtualenv 虛擬環境, 你可以避免使用 sudo:
pip install keras
或者:使用 Github 源碼安裝 Keras:
首先,使用 git 來複製 Keras:
git clone https://github.com/keras-team/keras.git
然後,cd 到 Keras 目錄並且運行安裝命令:
cd kerassudo python setup.py install