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等
詳細說明:
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等比較新的啟用函式
詳細說明:
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
注:目標函式的設定是在模型編譯階段
詳細說明:
eg:
model.compile(loss='binary_crossentropy', optimizer='sgd') #loss是指目標函式
6. optimizers
包:keras.optimizers
該模組主要負責設定神經網路的優化方法,如sgd。
注:優化函式的設定是在模型編譯階段
詳細說明:
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. #keras幫助文件
2. #深度學習框架keras簡介
1 Keras環境的安裝
本人電腦使用的是windows10系統,提前安裝了anaconda 程式可能會出現一些警告資訊,但是不會報錯,且能看到執行結果 import tensorflow as tf message tf.constant hello tensorflow with tf.session as sess p...
Keras學習筆記
手冊 keras中文文件 1.張量 一階張量是向量,二階張量是矩陣。2.batch batch gradient descent,遍歷全部資料集算一次損失函式,然後算函式對各個引數的梯度,更新梯度。太慢。stochastic gradient descent,每看乙個資料就算一下損失函式,然後求梯度...
keras入門筆記(1)
tensorflow 原始碼庫 本文參考了部落格有不足之處希望大家指出。tensorflow和keras的關係 tensorflow和keras都是深度學習框架,tensorflow比較靈活。keras其實就是tensorflow的介面 keras作為前端,tensorflow作為後端 它也很靈活,...