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