Keras是與TensorFlow一起使用的更高級別的作爲後端的API
-
定義模型類型
安裝Keras,直接導入Keras到項目中
pip install keras
通過導入Keras,定義模型的類型
from keras.model import Sequential from keras.layers import Dense model=Sequential()
-
添加層到模型中
Keras提供了全連接層的選項(針對密集連接的網絡)
model.add()
model.add(layers.Dense( units=64, # 下一層神經元個數 input_dim=7, # 輸入層神經元個數 use_bias=True, # 偏置項 kernel_initializer='uniform', # 權重初始化 bias_initializer='zeros', # 偏置項初始化 activation='relu', # 激活函數 ))
密集層實現的操作:output=activation(dot(input,kernel)+bias),其中activation是元素激活函數,是作爲激活參數傳遞的,Kernel是由該層創建的權重矩陣,bias是由該層創建的偏置向量,僅在use_bias爲True時適用。
-
可以使用它添加儘可能多的層,每個隱藏層都由前一層提供輸入
model.add(Dense(32,input_dim=13,activation='relu')) model.add(10,activation='sigmoid')
-
定義損失函數和優化器
Keras提供的損失函數:mean_squared_error、mean_absolute_error、mean_absolute_percentage_error、categorical_crossentropy
Keras提供的優化器:sgd、RMSprop、Adagrad、Adam、Adadelta
# 可使用compile函數完成損失函數和優化器的定義 # compile(self,optimizer,loss,metrics=None,sample_weight_mode=None) model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
-
模型訓練
model.fit(data,labels,epochs=**,batch_size=**)
使用Keras的fit函數完成模型訓練,其返回的是一個history對象,該對象中包含一個字典,其中包含訓練過程中的loss和acc數據,以及驗證過程
以下爲模型訓練示例:train_history=model.fit( x=x_train, y=y_train, validation_split=0.2, # 20%作爲驗證集 epochs=100, # 輪次 batch_size=40, # 每次訓練40 callbacks=callbacks, # 回調 verbose=1, # 訓練過程顯示模式,0:不顯示,1:帶進度條模式,2:每epoch顯示一行 )
-
模型預測
# 使用keras中predict函數完成模型預測 # predict(self,x,batch_size=32,verbose=0) model.predict(x_test)
-
模型評估
model.evaluate( x=x_test, # 測試數據 y=y_test, # 語句輸出 )
-
避免過擬合
# 使用dropout函數避免過擬合 model.add(Dropout(rate=0.3))