#train the model
history = model.fit(x_train, y_train,
batch_size=32,
epochs=100,
validation_split=0.1,
shuffle=True,
class_weight=class_weights,
callbacks=[es])
model.fit( 訓練集的輸入特徵,
訓練集的標籤,
batch_size, #每一個batch的大小
epochs, #迭代次數
validation_data = (測試集的輸入特徵,測試集的標籤),
validation_split = 從測試集中劃分多少比例給訓練集,
validation_freq = 測試的epoch間隔數)
https://blog.csdn.net/yunfeather/article/details/106463327
model.fit( ) :
將訓練數據在模型中訓練一定次數,返回loss和測量指標
model.fit(x, y, batch_size, epochs, verbose, validation_split, validation_data, validation_freq)
model.fit( ) 參數:
x | 輸入 |
y | 輸出 |
batch_size | 每一個batch的大小(批尺寸),即訓練一次網絡所用的樣本數 |
epochs | 迭代次數,即全部樣本數據將被“輪”多少次,輪完訓練停止 |
verbose |
0:不輸出信息;1:顯示進度條(一般默認爲1);2:每個epoch輸出一行記錄; |
validation_split | (0,1)的浮點數,分割數據當驗證數據,其它當訓練數據 |
validation_data | 指定驗證數據,該數據將覆蓋validation_spilt設定的數據 |
validation_freq | 指定驗證數據的epoch |
callback |
在每個training/epoch/batch結束時,可以通過回調函數Callbacks查看一些內部信息。常用的callback有EarlyStopping,當監視的變量停止改善時,停止訓練,防止模型過擬合,其默認參數如下: |
callback=callbacks.EarlyStopping(monitor='loss',min_delta=0.002,patience=0,mode='auto',restore_best_weights=False)
- monitor:監視量,一般是loss。
- min_delta:監視量改變的最小值,如果監視量的改變絕對值比min_delta小,這次就不算監視量改善,具體是增大還是減小看mode
- patience:如發現監視量loss相比上一個epoch訓練沒有下降,則經過patience個epoch後停止訓練
- mode:在min模式訓練,如果監視量停止下降則終止訓練;在max模式下,如果監視量停止上升則停止訓練。監視量使用acc時就要用max,使用loss時就要用min。
- restore_best_weights:是否把模型權重設爲訓練效果最好的epoch。如果爲False,最終模型權重是最後一次訓練的權重
model.fit( )返回值
model.fit( )函數返回一個History的對象,即記錄了loss和其他指標的數值隨epoch變化的情況。
鳶尾花數據:
REF
https://blog.csdn.net/Fwuyi/article/details/123214588