當前位置: 首頁>>技術教程>>正文


深度學習庫Keras入門

Keras簡介

Keras是一個高級神經網絡API,用Python編寫,能夠運行在TensorFlow或者Theano之上。它的開發重點是實現快速實驗。從想法到結果延遲很小,是做好研究的重要途徑。

keras

如果您需要一個深度學習庫,請使用Keras,因為:

  • 允許簡單快速的原型(通過用戶友好,模塊化和可擴展性)。
  • 支持卷積神經網絡和循環神經網絡,以及兩者的組合。
  • 在CPU和GPU上無縫運行。
    Keras當前兼容於:Python 2.7-3.5

Keras設計原則

  • 用戶友好 Keras是為人類而不是機器設計的API。它以用戶體驗為中心。 Keras遵循降低認知負擔的最佳實踐:它提供一致和簡單的API,它可以最大限度地減少常見用例所需的用戶操作數量,並根據用戶錯誤提供清晰可行的反饋。
  • 模塊化 模塊化是指獨立的、完全可配置的模塊的序列或圖形,能夠以很少的限製組合到一起。特別地,神經層,損失函數,優化器,初始化方案,激活函數,正則化方案都是獨立的模塊,您可以結合來創建新的模型。
  • 易擴展性 很容易添加新模塊(作為新類和函數),現有的模塊提供了很多示例。能夠輕鬆創建新模塊,使得Keras適合高級研究。
  • 使用Python語言 不需要單獨的模型配置文件。模型使用Python代碼進行描述,它是緊湊的,易於調試的,並且易於擴展。

30秒入門Keras

Keras的核心數據結構是一個模型(model),是組織層次的一種方式。最簡單的模型是序列(Sequential)模型,即多個層的線性堆疊。對於更複雜的體係結構,您應該使用Keras functional API,,這允許構建層的任意圖結構。

以下是序列Sequential模型:

from keras.models import Sequential

model = Sequential()

堆疊層隻需要調用`.add(),非常簡單:

from keras.layers import Dense, Activation

model.add(Dense(units=64, input_dim=100))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(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的更深入的教程,您可以查看:

在代碼庫的示例文件夾中(examples folder),您會發現更高級的模型:使用記憶網絡的問答,使用堆疊LSTM的文本生成等等。

Keras安裝

Keras使用了如下依賴:

  • numpy, scipy
  • yaml
  • HDF5h5py(可選,如果您使用模型保存/加載功能)
  • 可選,但如果您使用CNN,建議使用:cuDNN
  • TensorFlow(使用TensorFlow作為後端)
  • Theano(使用Theano作為後端)

要安裝Keras,請cd到Keras文件夾並運行install命令:

sudo python setup.py install

您還可以從PyPI安裝Keras:

sudo pip install keras

默認情況下,Keras將使用TensorFlow作為張量操縱庫。要切換到其他後端(Theano), 參考這裏

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3500.html,未經允許,請勿轉載。