1. 程式人生 > >keras入門筆記(1)

keras入門筆記(1)

keras入門筆記

TensorFlow原始碼庫:

https://github.com/tensorflow/tensorflow

本文參考了部落格https://blog.csdn.net/qq_42483967/article/details/80759828,有不足之處希望大家指出。

Tensorflow和Keras的關係:

TensorFlow和Keras都是深度學習框架,TensorFlow比較靈活。Keras其實就是TensorFlow的介面(Keras作為前端,TensorFlow作為後端),它也很靈活,且比較容易學。可以把keras看作為tensorflow封裝後的一個API。

Tensorflow可以用5-4-9模型來概括:5 步 + 4 種基本元素 + 9 種基本層結構

5步法 

(1)網路模型

過程化方法構造網路模型,Keras中提供了Sequential容器來實現過程式構造。只要用Sequential的add方法把層結構加進來就可以了。

(2)編譯模型

模型構造好之後,下一步就可以呼叫Sequential的compile方法來編譯它,編譯時需要指定兩個基本元素:loss是損失函式,optimizer是優化函式。
(3)訓練模型 

呼叫fit函式,將輸出的值X,打好標籤的值y,epochs訓練輪數,batch_size批次大小設定一下。


(4)評估模型

要用測試資料來評估,loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)
(5)使用模型進行預測

classes = model.predict(x_test, batch_size=128)

4種基本元素

(1)網路結構:由10種基本層結構和其他層結構組成 ,用層結構來拼裝(如何設計層結構)。
(2)啟用函式:如relu, softmax。對於多分類的情況,最後一層是softmax。 其它深度學習層中多用relu。 二分類可以用sigmoid。 另外淺層神經網路也可以用tanh。

(3)損失函式:

categorical_crossentropy多分類對數損失

binary_crossentropy對數損失

mean_squared_error平均方差損失

mean_absolute_error平均絕對值損失 

對於多分類來說,主要用categorical_ crossentropy。

(4)優化器:如SGD隨機梯度下降, RMSProp, Adagrad, Adam, Adadelta等

9種基本層模型

3種主模型: 
全連線層:Dense 
卷積層:如conv1d, conv2d 
迴圈層:如lstm, gru  
3種輔助層: 
Activation層 
Dropout層 
池化層
3種異構網路互聯層: 
嵌入層:用於第一層,輸入資料到其他網路的轉換 
Flatten層:用於卷積層到全連線層之間的過渡 
Permute層:用於RNN與CNN之間的介面

下面使用Mnist手寫識別作為一個例子來講解:

請見下一文章Keras入門筆記(2)