1. 程式人生 > >keras學習筆記1——Keras模組概述

keras學習筆記1——Keras模組概述

keras學習筆記1——Keras模組概述

 

Keras主要包括14個模組,本文主要對Models、layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics共計8個模組分別展開介紹,並通過一個簡單的Bp神經網路說明各個模組的作用。
1. Model
包:keras.models
這是Keras中最主要的一個模組,用於對各個元件進行組裝
eg:

from keras.models import Sequential
model=Sequential() #初始化模型
model.add(...) #可使用add方法組裝元件

2. layers
包:keras.layers
該模組主要用於生成神經網路層,包含多種型別,如Core layers、Convolutional layers等
eg:

from keras.layers import Dense #Dense表示Bp層
model.add(Dense(input_dim=3,output_dim=5)) #加入隱含層

3. Initializations
包:keras.initializations
該模組主要負責對模型引數(權重)進行初始化,初始化方法包括:uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal、he_normal等
詳細說明:

http://keras.io/initializations/
eg:

model.add(Dense(input_dim=3,output_dim=5,init='uniform')) #加入帶初始化(uniform)的隱含層

4. Activations
包:keras.activations、keras.layers.advanced_activations(新啟用函式)
該模組主要負責為神經層附加啟用函式,如linear、sigmoid、hard_sigmoid、tanh、softplus、relu、 softplus以及LeakyReLU等比較新的啟用函式
詳細說明:http://keras.io/activations/


eg:

model.add(Dense(input_dim=3,output_dim=5,activation='sigmoid')) 加入帶啟用函式(sigmoid)的隱含層

Equal to:

model.add(Dense(input_dim=3,output_dim=5)) 
model.add(Activation('sigmoid'))

5. Objectives
包:keras.objectives
該模組主要負責為神經網路附加損失函式,即目標函式。如mean_squared_error,mean_absolute_error ,squared_hinge,hinge,binary_crossentropy,categorical_crossentropy等,其中binary_crossentropy,categorical_crossentropy是指logloss
注:目標函式的設定是在模型編譯階段
詳細說明:http://keras.io/objectives/
eg:

 model.compile(loss='binary_crossentropy', optimizer='sgd') #loss是指目標函式
  •  

6. Optimizers
包:keras.optimizers
該模組主要負責設定神經網路的優化方法,如sgd。
注:優化函式的設定是在模型編譯階段
詳細說明:http://keras.io/optimizers/
eg:

model.compile(loss='binary_crossentropy', optimizer='sgd') #optimizer是指優化方法

7. Preprocessing
包:keras.preprocessing.(image\sequence\text)
資料預處理模組,不過本人目前尚未用過
8. metrics
包:keras.metrics
與sklearn中metrics包基本相同,主要包含一些如binary_accuracy、mae、mse等的評價方法
eg:

predict=model.predict_classes(test_x) #輸出預測結果
keras.metrics.binary_accuracy(test_y,predict) #計算預測精度

9. Bp 神經網路的簡單實現

from keras.models import Sequential #匯入模型
from keras.layers import Dense #匯入bp層
train_x,train_y #訓練集
test_x,text_y #測試集
model=Sequential() #初始化模型
model.add(Dense(input_dim=3,output_dim=3,activation='sigmoid',init='uniform'))) #新增一個隱含層,注:只是第一個隱含層需指定input_dim
model.add(Dense(1,activation='sigmoid')) #新增輸出層
model.compile(loss='binary_crossentropy', optimizer='sgd')  # 編譯,指定目標函式與優化方法
model.fit(train_x,train_y ) # 模型訓練
model.evaluate(test_x,text_y ) #模型測試

參考
1. http://keras.io #keras幫助文件
2. http://www.open-open.com/lib/view/open1430982565991.html #深度學習框架Keras簡介