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 ) #模型測試
a知識點筆記
萬用字元初始化標籤 html,body 容器寬度自適應 width 100 height 100 滑鼠覆蓋狀態 color f40 display inline block 轉換成行級塊元素,div可水平排列,a span定以後方可定義寬高.屬於文字元素,支援父級text align center ...
知識點筆記
1.當函式中使用未定義的變數時,該變數會自動被定義為全域性變數。2.解釋語言的特性有什麼?非獨立效率低解釋性語言和編譯性語言的定義 計算機不能直接理解高階語言,只能直接理解機器語言,所以必須要把高階語言翻譯成機器語言,計算機才能執行高階語言編寫的程式。翻譯的方式有兩種,乙個是編譯,乙個是解釋。兩種方...
最近知識點筆記
insert into test values null,null,null,null 可以插入一條全部為空的記錄 sqlldr 匯入多個資料檔案到資料庫 1.txt 20090122000000000002 02 1654.14 20100730 20090521000000000002 02 6...