深度學習 Keras框架學習筆記

2022-03-26 08:33:08 字數 2241 閱讀 9267

看了很多前輩對深度學習框架的介紹,雖然很多新人會用tensorflow,但是keras**更加簡單精簡,更受深度學習初學者的青睞。

keras是乙個高層神經網路api,keras由純python編寫而成並基tensorflow、theano以及cntk後端。

keras在以下場景會大放異彩:

網路層、損失函式、優化器、初始化策略、啟用函式、正則化方法都是獨立的模組,利用keras可以使用這些獨立的模組來構建自己的模型。

keras的核心資料結構是「模型」,模型是一種組織網路層的方式。keras中主要的模型是sequential模型,sequential是一系列網路層按順序構成的棧。也可以檢視函式式模型來學習建立更複雜的模型

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的乙個核心理念就是簡明易用,同時保證使用者對keras的絕對控制力度,使用者可以根據自己的需要定製自己的模型、網路層,甚至修改源**。

from keras.optimizers import sgd

model.compile(loss='categorical_crossentropy', optimizer=sgd(lr=0.01, momentum=0.9, nesterov=true))

完成模型編譯後,在訓練資料上按batch進行一定次數的迭代來訓練網路

model.fit(x_train, y_train, epochs=5, batch_size=32)

當然,也可以手動將乙個個batch的資料送入網路中訓練,這時候需要使用:

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)

搭建乙個問答系統、影象分類模型,或神經圖靈機、word2vec詞嵌入器就是這麼快。

為了更深入的了解keras,可以檢視一下下面的兩個tutorial

新手教程:

keras使用了下面的依賴包,三種後端必須至少選擇一種,我們建議選擇tensorflow。

當使用tensorflow為後端時:

當使用theano作為後端時:

當使用cntk作為後端時:

「後端」翻譯自backend,指的是keras依賴於完成底層的張量運算的軟體包。

從原始碼安裝keras時,首先git clone keras的**:

git clone 

接著cd到keras的資料夾中,並執行下面的安裝命令:

sudo python setup.py install
你也可以使用pypi來安裝keras

sudo pip install keras

參考文章:

Keras深度學習框架配置

專案 是在windows 7上執行的,主要用到的matlab r2013a和python,其中matlab用於patch的分割和預處理,卷積神經網路搭建用到了根植於python和theano的深度學習框架keras。keras是基於theano的乙個深度學習框架,它的設計參考了torch,用pyth...

深度學習的框架之keras

老早之前寫過一些深度學習框架的常識。但是太不具體了。這次出乙個系列的,今天就單獨寫keras的相關知識。張量概念介紹 張量概念是向量概念和矩陣概念的推廣,標量是零階張量,向量是一階張量,矩陣 方陣 是二階張量,而三階張量則好比立體矩陣,兩個張量的點積就是將a張量的最後乙個軸中的所有元素,與b張量中倒...

Ubuntu 搭建深度學習框架 keras

深度學習框架keras是基於tensorflow的所以,安裝keras需要安裝tensorflow 2.本教程開始 ubuntu安裝的教程就略過了,直接從深度學習所需的環境的搭建開始說起 需要說明的是,之所以要寫個教程是因為本人安裝了很多遍都是失敗的,原始是在該教程編寫的日期 18 06 01 的時...