訓練過程中的train,val,test的區別

2021-10-25 01:11:37 字數 595 閱讀 3851

train是訓練集,

val(validation的簡稱)是訓練過程中的測試集,是為了讓你在邊訓練邊看到訓練的結果,及時判斷學習狀態。

test是訓練模型結束後,用於評價模型結果的測試集。

其中,只有train是需要訓練的,valtest不是必須的。一般的,val的資料集和train沒有交集,所以這部分資料對最終訓練出的模型沒有貢獻,其主要作用是來驗證是否過擬合、以及用來調節訓練引數等。

例:

訓練0-5000次迭代過程中,train和val的loss都是不斷降低,

但是從5000-10000過程中train loss不斷降低,validation的loss不降反公升。

那麼就證明繼續訓練下去,模型只是對train dataset這部分擬合的特別好,但是泛化能力很差。

所以與其選取10000次的結果,不如選擇5000次的結果。

參考:

的訓練過程 模型訓練過程中累計auc

在平時計算auc的時候,大都是使用 sklearn.metrics.roc auc score 來計算。一般操作是將每個batch 出來的結果 拼接起來,然後扔到該函式中計算。但是如果測試集量級過大 比如 10億量級 每個樣本的 結果拼接起來之後至少需要 3g記憶體。這個開銷顯然不是我們想要的。有什...

Tensorflow訓練過程中validation

tensorflow因為靜態圖的原因,邊train邊validation的過程相較於pytorch來說複雜一些。分別獲取訓練集和驗證集的資料。我這裡使用的是從tfrecoed讀入資料。training data img name batch train,img batch train,gtboxes...

訓練過程中的train,val,test的區別

train是訓練集,val是訓練過程中的測試集,是為了讓你在邊訓練邊看到訓練的結果,及時判斷學習狀態。test就是訓練模型結束後,用於評價模型結果的測試集。只有train就可以訓練,val不是必須的,比例也可以設定很小。test對於model訓練也不是必須的,但是一般都要預留一些用來檢測,通常推薦比...