簡體   English   中英

神經分割網絡根據測試批量大小給出不同的 output

[英]Neural segmentation network gives different output based on test batch size

我已經在 (224, 224) 圖像上實現並訓練了神經分割 model。 但是,在測試期間,model 根據測試批次的形狀返回略有不同的結果。

以下圖像是我在預訓練的 model 上進行測試時獲得的結果。

第一個圖像是我在預測單個示例時得到的預測(我們稱之為img0 )(所以輸入[img0]並且形狀為 (1,224,224))

第二張圖片是我對同一張圖片的預測,但是當它與其他 7 張圖片的批次中時(所以輸入[img0, img1, ..., img7]並且形狀為 (8,224,224))。

與第二個 output 相比,第一個 output 比我預期的更接近。

但是,我不明白為什么輸出開始時會有所不同......這應該是正常行為嗎? 提前致謝。

是的,批量大小是一個超參數,這意味着您應該反復試驗以找到最佳值(超參數調整)。 但你也應該意識到它對訓練過程的影響。 在每個批次中,將通過前饋批次中的樣本來計算損失,然后使用該損失值執行反向傳播。 因此,如果您為批量大小選擇一個較小的值,很可能您將無法找到全局最優值,而您只是在它周圍波動甚至陷入局部最優值(從優化的角度來看)。 不建議使用非常小的批量大小值(尤其是 1)。

此外,您需要一個驗證集(多個樣本)來完全確定您的 model 是否准確。

這種行為來自我的 model 中的批量標准化層。 我在調用 model 期間使用training=true

因此,批量標准化根據批次的規范對批次進行規范化,並且該規范會根據批量大小而變化。

因此,這是正常行為!

暫無
暫無

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

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