keras深度學習框架輸出acc loss,val acc val loss,什麼意思?

時間 2021-06-01 15:56:05

1樓:想飛的魚

你好,我現在遇到乙個這樣的問題:現在我跑的模型得到下面的影象,上面顯示acc的正確率達到80%,而驗證集卻只有55%左右,但是我用的驗證集就是我跑模型的訓練集,按道理來說兩個基本上是相等的,但是為什麼會差那麼多呢,所以我現在有點懷疑那個acc的含義是否就是訓練集的正確率了,求指點

2樓:王華

keras中文手冊

validation_split:0~1之間的浮點數,用來指定訓練集的一定比例資料作為驗證集。驗證集將不參與訓練,並在每個epoch結束後測試的模型的指標,如損失函式、精確度等。

注意,validation_split的劃分在shuffle之後,因此如果你的資料本身是有序的,需要先手工打亂再指定validation_split,否則可能會出現驗證集樣本不均勻。

3樓:楊培文

keras深度學習框架輸出acc/loss,val_acc/val_loss。其中,val_acc/val_loss是什麼意思?是驗證集上的acc/loss?

還是測試集上的caa/loss?

當然是驗證集的 acc 和 loss 呀,因為 val 代表 validation,test_loss 才是測試集的 loss。

為什麼在訓練的時候我們已經有了測試集還需要驗證集?

這個問題就非常值得回答了。

首先說明為什麼要驗證集,因為我們在訓練模型的時候,如果只有訓練集 loss 和 acc,你會發現它一定是逐漸下降的,即使過擬合了也不會回頭。那麼如果你要調參,想讓 loss 更低,就會一直加層,一直加神經元,然後發現 loss 越來越低,最後100%識別所有的樣本。

但是此時的模型肯定是過擬合的,在測試集上一測試就會暴露,那麼你的實際目的其實是想讓模型在所有的資料上都能有不錯的準確率,而不只是在訓練集上效果好,那麼我們就可以使用驗證集來完成這個驗證的任務。

在我們訓練模型的時候,每訓練一代,輸出一代的訓練集 loss 和 acc,同時也對驗證集進行評估,輸出驗證集的 loss 和 acc,這樣就能夠觀察訓練集和驗證集的 loss 走勢。

keras.io/callbacks/#

earlystopping

比如下面就是乙個提前停止的例子:

當然我們也可以通過新增 Dropout 等方法避免過擬合:

但正是因為這樣那樣的調參方法,以及我們對模型的選擇性,容易造成模型在驗證集上也會有過擬合的問題。雖然模型沒有直接接觸到驗證集,但是我們人為地選擇了較好的模型,它可能是有效的方法,也有可能只是偶然,但是我們不知道,因此我們沒有辦法相信驗證集的分數。

舉乙個極端一點的例子,我們有乙個二分類器,它只會返回 random(0, 1),但是我們可以調節它的 random seed,某天我們調出來了乙個 random seed,它在訓練集上效果好,在驗證集上效果也好,但是我們仍然不能相信它,因為 random seed 是我們根據驗證集選擇的,相當於洩露了驗證集給模型,因此還需要乙個集來最終判定模型是否合理。

這個集必須不影響模型的整個訓練過程以及調參過程,也就是說不管有沒有這個集,都不會影響整個訓練過程和調參過程,那麼這個集就叫做測試集。使用測試集來評估模型,得到的分數就是合理的,可信的。

4樓:大師兄也瘋狂

【訓練的時候我們已經有了測試集還需要驗證集】,你這裡的測試集扮演者驗證集的角色。訓練集、驗證集、測試集,三個資料集分別幹什麼自己可以找找資料

企業開發深度學習框架的商業目的是什麼?

Lanking 自用,這是TF出來的原因。推廣自己的雲服務 有云服務做底的框架 保護自己 當框架一家獨佔的時候,其他人如果有改動就很難merge進去。PyTorch,MXNet出現都是的,因為已經出現了有大廠員工需要改動但對面完全不理的情況。PR 說自己比別人快X倍的框架 公司作底沒有真正的開源,只...

自己寫乙個深度學習底層框架(像tensorflow),現實嗎? 目前學習了1年深度學習理論和實踐 ?

monkeyfu 現實,你看我就寫了乙個玩兒 Seq2SeqSharp是乙個用純C 打造的基於張量 Tensor 的帶有自動求導計算圖模型的深度學習框架。基於這個框架,用C 寫神經網路可以像用Python一樣簡單。其同時支援CPU與多GPU CUDA 效能方面CPU部分主要基於Intel MKL及其...

2020什麼深度學習框架容易上手一點呢?

CriseSir 感覺tensorflow 2.0現在還是不錯的,將keras整合進來了,作為高階api呼叫,體驗感跟keras一樣,值得大家一試!況且目前在工業界,tensorflow還是主流。學術界,pytorch為王! 張信東 容易上手 我理解是三點 api簡潔易用,文件完善 使用的人多,社群...