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