深度學(xué)習(xí)框架Keras使用

以下來(lái)自 Keras 中文文檔的解釋?zhuān)D(zhuǎn)載經(jīng)中文文檔作者@BigMoyan

授權(quán),詳細(xì)請(qǐng)看http://keras-cn.readthedocs.io/
Keras是基于Theano和TensorFlow的深度學(xué)習(xí)庫(kù),其特點(diǎn)如下:
簡(jiǎn)易和快速的原型設(shè)計(jì)(keras具有高度模塊化,極簡(jiǎn),和可擴(kuò)充特性)
支持CNN和RNN,或二者的結(jié)合
支持任意的鏈接方案(包括多輸入和多輸出訓(xùn)練)
無(wú)縫CPU和GPU切換

先來(lái)了解一下深度學(xué)習(xí)的基本概念
Keras的核心數(shù)據(jù)結(jié)構(gòu)是“模型”,模型是一種組織網(wǎng)絡(luò)層的方式。Keras中主要的模型是Sequential模型,Sequential是一系列網(wǎng)絡(luò)層按順序構(gòu)成的棧。你也可以查看泛型模型來(lái)學(xué)習(xí)建立更復(fù)雜的模型
Sequential模型如下
from keras.models import Sequentialmodel = Sequential()

將一些網(wǎng)絡(luò)層通過(guò).add()堆疊起來(lái),就構(gòu)成了一個(gè)模型:

from keras.layers 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()方法來(lái)編譯模型:

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])

編譯模型時(shí)必須指明損失函數(shù)和優(yōu)化器,如果你需要的話,也可以自己定制損失函數(shù)。Keras的一個(gè)核心理念就是簡(jiǎn)明易用同時(shí),保證用戶對(duì)Keras的絕對(duì)控制力度,用戶可以根據(jù)自己的需要定制自己的模型、網(wǎng)絡(luò)層,甚至修改源代碼。

from keras.optimizers import SGDmodel.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))

完成模型編譯后,我們?cè)谟?xùn)練數(shù)據(jù)上按batch**進(jìn)行一定次數(shù)的迭代訓(xùn)練,以擬合網(wǎng)絡(luò)。

model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)

當(dāng)然,我們也可以手動(dòng)將一個(gè)個(gè)batch的數(shù)據(jù)送入網(wǎng)絡(luò)中訓(xùn)練,這時(shí)候需要使用:

model.train_on_batch(X_batch, Y_batch)

隨后,我們可以使用一行代碼對(duì)我們的模型進(jìn)行評(píng)估,看看模型的指標(biāo)是否滿足我們的要求:

loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32)

或者,我們可以使用我們的模型,對(duì)新的數(shù)據(jù)進(jìn)行預(yù)測(cè):

classes = model.predict_classes(X_test, batch_size=32)proba = model.predict_proba(X_test, batch_size=32)

搭建一個(gè)問(wèn)答系統(tǒng)、圖像分類(lèi)模型,或神經(jīng)圖靈機(jī)、word2vec詞嵌入器就是這么快。

Keras的例子

├── addition_rnn.py├── antirectifier.py├── babi_memnn.py├── babi_rnn.py├── cifar10_cnn.py├── conv_filter_visualization.py├── deep_dream.py├── image_ocr.py├── imdb_bidirectional_lstm.py├── imdb_cnn.py├── imdb_cnn_lstm.py├── imdb_fasttext.py├── imdb_lstm.py├── lstm_benchmark.py├── lstm_text_generation.py├── mnist_cnn.py├── mnist_hierarchical_rnn.py├── mnist_irnn.py├── mnist_mlp.py├── mnist_net2net.py├── mnist_siamese_graph.py├── mnist_sklearn_wrapper.py├── mnist_swwae.py├── mnist_transfer_cnn.py├── neural_doodle.py├── neural_style_transfer.py├── pretrained_word_embeddings.py├── reuters_mlp.py├── stateful_lstm.py├── variational_autoencoder.py└── variational_autoencoder_deconv.py

下面是小潤(rùn)收集利用深度學(xué)習(xí)庫(kù)寫(xiě)神經(jīng)網(wǎng)絡(luò)的一些例子

deep-learning-demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容