在訓練cnn的過程中,訓練集準確率逐漸公升高,loss平穩下降,但是測試集動盪劇烈是什麼原因?

時間 2021-05-12 01:58:23

1樓:暴走的夢想

我覺得首先要看你的訓練集和測試集是否是同乙個資料集,同乙個資料集的話分布應該是大致相同的,(當然要確保劃分資料集合理,比如訓練集是否包含了所有種類,是否對資料集進行了隨機劃分).這樣出現測試集acc和loss不穩定的情況就是過擬合了。

還有一種情況就是訓練集和測試集沒有來自同乙個資料集,那這時測試集acc和loss不穩定的情況大概率就是因為分布偏差太大的原因。

2樓:六個柚子

首先訓練集平穩擬合,證明整個網路設計問題不大。如果測試集一開始動盪地下降屬正常情況。只需到平穩之後降低學習率即可獲得很漂亮的測試集曲線。

如果只是無規則動盪,很可能是訓練集和測試集分布相差很遠。

3樓:阿布

如果只是單純曲線的問題,可以檢查一下訓練集與驗證集計算loss的方式,可能訓練集累積計算,驗證集每次重新算,就會出現這種情況

4樓:張小楓

振盪是很正常的事情,驗證集資料量少。資料分布與訓練集分布有偏差。訓練過程中,模型擬合訓練集分布,朝某個方向擬合的過程中,有可能該方向與測試集分布有偏差。

等模型收斂,測試集會穩定loss與準確率將穩定。

若與上面描述不符可能的原因有:

1驗證集(測試集)生成不夠隨機。

2訓練過程中新增的資料擴充演算法嚴重改變了訓練集分布。

3模型容量與資料不匹配,過擬合嚴重。即模型參數量過多而資料量過少。

以上個人看法

5樓:chengyu

我認為一可能是過擬合了,二是訓練集和測試集本身的分布有差異

如果是自己生成的簡單資料可以加一些雜訊,並且把訓練集測試集分得更均勻些。網路結構也可以像別人所說,加多卷積層,注重關鍵特徵的提取。

6樓:南朔山北

我也遇到了類似的問題,發現確實是訓練集和測試集的之間樣本的差異過大造成的。你可以將測試集和訓練集中的樣本都按相似的比例分配一下試試。

7樓:秋陽裡皮

過擬合。bias逐漸下降,variance逐漸上公升,在測試集上的表現會很不穩定。

還有乙個原因就是資料分布skewness過大

教育過程中,應當先訓練思考能力,還是先訓練記憶能力?

小灰 訓練思考能力。記憶能力不需要訓練,小孩子能說清楚話就說明有足夠的記憶能力 語言本身就是一種大量記憶後都運用 我們常見的說記性不好,一種是身體不健康導致的 如老年人記憶力衰退,精神病人記憶混亂 另外更常見的是,記憶投入不足 比如英文單詞量太少導致讀不懂課文 和找不到知識的內在聯絡 數學最常見的情...

如何在pytorch訓練模型的過程中,對於某一層的權重最大最小值進行限制?

sakuraiii import torch from torch import nnclass Model nn Module def init self super Model self init self lin1 nn Linear 5 10,bias False self lin2 nn ...

在進行運動訓練的過程中,每組之間的休息時間可以用來拉伸嗎?

igrkonze 拉伸可以增加身體的柔軟度,有人認為柔軟度是體操運動員才需要做的。其實不然,身體和韌帶僵硬的人,很容易在運動以及日常生活中受傷。拉伸可以讓肌肉韌帶和關節與關節之間配合更加柔和,減少關節和肌肉的受傷可能性,減少背部問題發生的可能性。在日常生活中,經常會出現一天勞累下來,第二天特別容易腰...