簡體   English   中英

驗證和訓練准確性很高,在第一個時期[Keras]

[英]Validation and training accuracy high in the first epoch [Keras]

我正在訓練一個具有2個類和53k圖像的圖像分類器,並使用keras使用1.3k圖像對其進行驗證。 這是神經網絡的結構:

model = Sequential()
model.add(Flatten(input_shape=train_data.shape[1:]))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
              loss='binary_crossentropy', metrics=['accuracy'])

訓練准確性在第一個時期從〜50%增加到〜85%,驗證准確性為85%。 隨后的歷時不斷提高訓練准確性,但是,驗證准確性保持在80-90%的范圍內。

我很好奇,是否有可能在第一個時期獲得較高的驗證和培訓准確性? 如果我的理解是正確的,那么它會從很小的地方開始,並隨着每個經過的時期穩步增加。

謝謝

編輯:重新縮放后圖像大小為150x150,最小批處理大小為16。

使用前饋神經網絡進行圖像分類時,您不能指望獲得超過90-95%的精度。

您需要使用另一種稱為卷積神經網絡的體系結構,這是圖像識別中的最新技術。

同樣,使用keras來構建它非常容易,但是在計算上比這更密集。

如果要堅持使用前饋層,最好的辦法是盡早停止,但是即使那樣也不能使准確性超過90%。

是的,時代應該適合模型中的數據。

嘗試在末尾使用2個神經元,並在ur類標簽上使用1個熱編碼! 就像我看到的那樣,在這種情況下我得到了更好的結果,而不是二進制輸出。

是的,完全有可能在第一個時期獲得較高的准確性,然后僅進行適度的改進。

如果數據中有足夠的冗余,並且您在第一個時期(即,使用小型迷你批處理)進行了足夠的更新(復雜的模型,似乎很容易優化),則很可能您會學到大多數重要的東西在第一個時代。 當您再次顯示數據時,該模型將開始過擬合訓練集中特定圖像所引入的比值(從而使訓練准確度提高),但是由於您沒有提供任何新穎的樣本,因此該模型不會學到任何新知識。類的基礎屬性。

您可以將您的訓練數據視為無限流(實際上,SGD希望享受所有收斂定理)。 您是否認為需要超過5萬個樣本才能了解重要內容? 實際上,您可以通過提供一些亞紀元的更新后提供更少的數據或報告性能來測試模型的數據需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM