以分類model來做說明,
假設我們要分成四個類別,
分別為A, B, C, D,
每個類別其收集的樣本量並不均勻,
A為49張,
B為54張,
C為64張,
D為52張,
這邊我們必須把每個類別的樣本擴增到同等數量,
將A, B, D擴增到跟C一樣64張樣本,
至於為何要擴增到同等數量,
其主要原因是為了在訊練過程中讓各類別達到平衡,
避免崩盤的問題發生,
經過擴增後,
每個類別各為64張,
全部加總為256張,
另外,
在訓練之前,
model中最重要的參數如下:
validation_split: 0.2 (表示把訓練樣本中20%用來做驗證)
epochs=20 (表示要訓練20輪)
batch_size=8
(batch的選擇將決定了下降的方向, 範圍可以依據個人電腦的顯示卡內的記憶體做調整, 本版採用GUP為GTX 1080Ti 11G, 因此可以設置範圍可在11內, 另外, 樣本量越多batch_size越大越好大, 而樣本量越少, batch_size越小越好, 但並非全都是如此, 要反覆測試及驗證才可, 補充: batch_size越小, 訓練的時間將會增加)
當樣本量少時,
為了降loss,
必須增加epochs,
反之,
樣本量大時,
訓練epochs次數可以少量,
以上為個人經驗僅供參考
留言列表