Keras模型在輸入數(shù)據(jù)和標簽的Numpy矩陣上進行訓(xùn)練。為了訓(xùn)練一個模型,你通常會使用fit函數(shù)。文檔詳見此處。
fit(self,x,y,batch_size=32,epochs=10,verbose=1,callbacks=None,
validation_split=0.0,validation_data=None,shuffle=True,
class_weight=None,sample_weight=None,initial_epoch=0)
本函數(shù)將模型訓(xùn)練nb_epoch輪,其參數(shù)有:
x:輸入數(shù)據(jù),如果模型只有一個輸入,那么x的類型是numpyarray,如果模型有多個輸入,那么x的類型應(yīng)當(dāng)是list,list的元素是對應(yīng)于各個輸入的numpyarray
y:標簽,numpyarray
batch_size:整數(shù),指定進行梯度下降時每個batch包含的樣本數(shù),訓(xùn)練時一個batch的樣本會被計算一次梯度下降,使目標函數(shù)優(yōu)化一步。
epochs:整數(shù),訓(xùn)練的輪數(shù),每個epoch會把訓(xùn)練集輪一遍。
verbose:日志顯示,0為不在標準輸出流輸出日志信息,1為輸出進度條記錄,2為每個epoch輸出一行記錄
callbacks:list,,其中的元素是keras.callbacks.Callback的對象。這個list中的回調(diào)函數(shù)將會在訓(xùn)練過程中的適當(dāng)時機被調(diào)用,參考回調(diào)函數(shù)。
validation_split:0~1之間的浮點數(shù),用來指定訓(xùn)練集的一定比例數(shù)據(jù)作為驗證集。驗證集將不參與訓(xùn)練,并在每個epoch結(jié)束后測試的模型的指標,如損失函數(shù),精確度等。注意,validation_split的劃分在shuffle之前,因此如果你的數(shù)據(jù)本身是有序的,需要先手工打亂再指定validation_split,否則可能會出現(xiàn)驗證集樣本不均勻。
validation_data:形式為(X,y)的tuple,是指定的驗證集,此參數(shù)將覆蓋validation_spilt。
shuffle:布爾值或者字符串,一般為布爾值,表示是否在訓(xùn)練過程中隨機打亂輸入樣本的順序。若為字符串“batch”,則用來處理HDF5數(shù)據(jù)大特殊情況,它將在batch內(nèi)部將數(shù)據(jù)打亂。
class_weight:字典,將不同的類別映射為不同的權(quán)重,該參數(shù)用來訓(xùn)練過程中調(diào)整損失函數(shù)(只能用于訓(xùn)練)
sample_weight:權(quán)值的numpyarray,用于在訓(xùn)練時調(diào)整損失(僅用于訓(xùn)練)。
可以傳遞一個1D的與樣本等長的向量用于對樣本進行1對1的加權(quán),或者在面對時序數(shù)據(jù)時,傳遞一個的形式為(samples,sequence_length)的矩陣來為每個時間步上的樣本賦不同的權(quán)。這種情況下請確定在編譯模型時添加了sample_weight_mode=‘temporal’。
initial_epoch:從該參數(shù)指定的epoch開始訓(xùn)練,在繼續(xù)之前的訓(xùn)練時候有用。
fit函數(shù)返回一個History的對象,其History.history屬性記錄了損失函數(shù)和其他指標的數(shù)值隨著epoch變化的情況,如果有驗證集的話,也包含了驗證集的這些指標變化情況。
以上內(nèi)容為大家介紹了python的keras訓(xùn)練,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。