利用u-net進行圖像語義分割,但是得到的結果幾乎不能用,請問這是為啥呢?
小朋友,你還真當是黑盒來使啊? 輸入輸出訓練,結果不對就蒙了?
一定要在心中把問題分解,要分析清楚可能導致問題的因素有哪些,這些因素應該如何一一確認是否正確,如果可以直接通過檢查演算法中間結果的方式來驗證就去直接驗證,如果不能,還需要去另外設計方法去驗證。做演算法的人應該心裡知道演算法運行的全過程中的每一步應該如何動作,然後按照這個標準去檢查演算法是否按照預測的方式在執行。
應該不是模型的問題。而是你的程序出了問題,查看模型輸入和輸出圖像是否正確。傳入的訓練數據是否正確。訓練時loss正常嗎。重新檢查一遍你寫的程序吧。別質疑人家的模型。
你只貼兩張圖看不太出來問題在哪
你的圖像應該是比原論文做細胞顯微照片還要複雜,所以如果你資料夠多的話,深度拉深一點,channel多一點,可能會有幫助
另外我建議你用tensorboardX (跨框架的tensorboard)
把每個epoch的loss,每個epoch的圖像輸出
通通畫出來觀察,會比較有靈感
你的loss是怎麼樣的呢? 你這樣兩張圖應該沒人說得出 為什麼...說不定你的loss很大,你的模型根本沒有訓練成功,那這樣的結果也不奇怪了.
建議用tensorboard看一下你的loss,也可以把precision,recall什麼的都顯示出來一起看
測試一下訓練數據吧。
推薦閱讀: