以下來(lái)自 Keras 中文文檔的解釋树叽,轉(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)碾牌、圖像分類模型康愤,或神經(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
![](https://pic1.zhimg.com/v2-8cf7c7e43ce7f24d738d79f435fd7870_b.jpg)