keras知識點筆記

2021-08-06 06:36:33 字數 2842 閱讀 6176

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...