2

我正在使用預先訓練的GoogLeNet,然後在我的數據集上對其進行了精細調整,以對11個類進行分類。驗證數據集似乎給出了「loss3/top1」86.5%。但是當我評估我評估數據集的表現時,它給我77%的準確度。無論我做了什麼更改train_val.prototxt,我在deploy.prototxt中做了相同的更改。驗證和評估準確性之間的差異是正常的還是我做錯了什麼? 有什麼建議嗎?驗證和評估準確性的差異

+1

相差〜10%是相當大的。您在驗證集中有多少個樣本,以及評估集中有多少個樣本?這些集合中分發的標籤是否相同? – Shai

+0

@Shai驗證數據集中的樣本總數爲4123,評估中爲4118個。對於每個類,我確定驗證和評估數據集應包含相同數量的圖像。 – fkeufss

+1

這很奇怪。這個差別太大,不能作爲「樣本錯誤」被駁回,但太小,不足以暗示一個主要錯誤... – Shai

回答

4

爲了讓您在驗證數據集上獲得您的訓練模型的公平估算,您需要以有意義的方式設置test_itrtest_batch_size

所以,test_itr應設置爲:

Val_data/test_batch_Size 

其中,Val_data是您的驗證數據集的大小和test_batch_Size是對的batch_size驗證階段設置驗證批次大小值。

+1

我的'test_itr'是40,'test_batch_size'是50.根據你的公式我的設置是錯誤的。 – fkeufss

+1

你的'test_itr'應該超過82.我希望這可以解決你的問題。 –

+0

@ user2409356在培訓期間,您的測試階段似乎並未涵蓋整個驗證集。嘗試將'test_iter'設置爲4123/50〜= 83並查看您的準確度。 – Shai