Keras 是一個用 Python 編寫的高級神經網絡 API,它能夠以 TensorFlow,CNTK, 或者Theano 作為後端運行。Keras 的開發重點是支持快速的實驗,能夠以最小的時延把你的想法轉換為實驗結果,是做好研究的關鍵。
如果你在以下情況下需要深度學習庫,請使用 Keras:
截至2018年6月,Keras擁有超過250,000名個人用戶。與其他任何深度學習框架相比,Keras在行業和研究領域的應用率更高(除 TensorFlow 之外,且Keras API 是 TensorFlow 的官方前端,通過 tf.keras 模塊使用)
Keras 的核心數據結構是 model,一種組織網絡層的方式。最簡單的模型是Sequential 順序模型,它是由多個網絡層線性堆疊的棧。對於更複雜的結構,則應該使用 Keras 函數式 API,它允許構建任意的神經網絡圖。
Keras簡潔高效,30 秒上手,下面以 Sequential 順序模型為例進行說明。
1from keras.models import Sequential
2
3model = Sequential()
可以簡單地使用 .add() 來堆疊模型:
1from keras.layers import Dense
2
3model.add(Dense(units=64, activation='relu', input_dim=100))
4model.add(Dense(units=10, activation='softmax'))
在完成了模型的構建後, 可以使用 .compile() 來配置學習過程:
1model.compile(loss='categorical_crossentropy',
2 optimizer='sgd',
3 metrics=['accuracy'])
如果需要,你還可以進一步地配置你的優化器。Keras 的核心原則是使事情變得相當簡單,同時又允許用戶在需要的時候能夠進行完全的控制(終極的控制是原始碼的易擴展性)。
1model.compile(loss=keras.losses.categorical_crossentropy,
2 optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))
現在,你可以批量地在訓練數據上進行迭代了:
1
2model.fit(x_train, y_train, epochs=5, batch_size=32)
或者,你可以手動地將批次的數據提供給模型:
1model.train_on_batch(x_batch, y_batch)
只需一行代碼就能評估模型性能:
1loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)
或者對新的數據生成預測:
1classes = model.predict(x_test, batch_size=128)
構建一個問答系統,一個圖像分類模型,一個神經圖靈機,或者其他的任何模型,就是這麼的快。深度學習背後的思想很簡單,那麼它們的實現又何必要那麼痛苦呢?
有關 Keras 更深入的教程,請查看官方文檔:
英文:https://keras.io
中文:https://keras.io/zh
然而,上述文檔均為網頁版文檔,不便於本地查閱或者列印,因此,小編特地用 LaTeX 排版整理了上述網頁文檔的PDF版本,供小夥伴們離線學習。
該文檔的目錄如下:
《Keras: 基於 Python 的深度學習庫》 PDF版 獲取方式為後臺回復關鍵詞:keras 即可。
更多乾貨歷史推文: