Debug Tensorflow: yolo模型检测框位置正确但类别不正确
生活随笔
收集整理的這篇文章主要介紹了
Debug Tensorflow: yolo模型检测框位置正确但类别不正确
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
平臺(tái)
- tensorflow
- yolov5
現(xiàn)象
標(biāo)注框沒(méi)問(wèn)題,但類別不正確
解決
- 首先確保后處理過(guò)程沒(méi)有問(wèn)題,nms無(wú)誤
- 由于yolo損失函數(shù)包含三部分,參考公眾號(hào)YueTan。我的猜測(cè)是三部分可能沒(méi)有平衡好,分類損失權(quán)重較小,導(dǎo)致分類沒(méi)有訓(xùn)練充分導(dǎo)致。所以分類損失函數(shù)乘以10以后重現(xiàn)訓(xùn)練,問(wèn)題解決了。
- 根本原因在于tf.keras.losses.BinaryCrossentropy,計(jì)算時(shí)默認(rèn)會(huì)把最后一個(gè)維度默認(rèn)平均,即使加上reduction=tf.keras.losses.Reduction.NONE,最后一個(gè)維度也會(huì)是平均。因此分類損失函數(shù)占比較小無(wú)法得到較好優(yōu)化,乘以類別個(gè)數(shù),可以解決這個(gè)問(wèn)題
最終解決方法看起來(lái)很簡(jiǎn)單,只改了一點(diǎn)點(diǎn)
class_loss_all += class_loss * 10
更多內(nèi)容,歡迎關(guān)注我的公眾號(hào)YueTan
總結(jié)
以上是生活随笔為你收集整理的Debug Tensorflow: yolo模型检测框位置正确但类别不正确的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 实现springboot的starter
- 下一篇: spring三种注入方式