fasterrcnn tensorflow代码详解_pytorch目标检测代码的一些bug调试
這幾天一直在做調包俠,是時候來總結總結了。記錄一些我所遇到的不常見的問題。
faster rcnn:
參考代碼:
jwyang/faster-rcnn.pytorch?github.compytorch代碼調試,相較于tensorflow的版本要友好一些,不用創建軟連接啥的,數據集直接復制voc2007就行(暫時沒有嘗試coco),不過要注意如果有一個類別是0(就是完全沒有目標的圖像)要把這個類別給去掉,不然在訓練的時候rpn_bound_loss會變成nan,我猜測是因為找不到正樣本(如果類別為0,正樣本是0,背景也是0,可能機器就會把正樣本和負樣本搞混,找不到正樣本,分子為0,損失就變成nan了)。
SSD:
參考代碼:
https://github.com/amdegroot/ssd.pytorch?github.com這個代碼調試了很久,大部分問題可以百度解決。我遇到的難題是這個
IndexError: too many indices for array(其他的報錯信息找不到了。。)
可以參考我的回答:
小墨:SSD IndexError: too many indices for array報錯?zhuanlan.zhihu.comguoruoqian/cascade-rcnn_Pytorch小墨:SSD IndexError: too many indices for array報錯?zhuanlan.zhihu.com另外一個難題是這個:
報錯信息:RuntimeError: cuda runtime error(59):device-side assert triggred at XXXX
這個是我不懂SSD的原因,SSD中類別是沒有backgound,但是config.py中類別數要修改成class+1,這個1就是背景。
cascade-rcnn
https://github.com/guoruoqian/cascade-rcnn_Pytorch?github.com這個代碼和前面的faster rcnn的代碼是一脈相承的,改一下lib里面的make.sh里面的算力,我的是sm_61。報錯如下
from scipy.misc import imread cannot import name "imread"
這個只需要吧scipy的版本降低到1.2.1就OK了,更低的版本1.1.0我也試過了,可以使用。
第二個報錯是這個:
im_data=im_data.cuda()這里報錯
runtimeError: cuda runtime error (38): no CUDA-capable device is detected at XXXX
這個是因為在輸入命令的時候是這樣輸入的:
CUDA_VISIBLE_DEVICES=3 python3 trainval_net.py XXXXX等等一長串
CUDA_VISIBLE_DEVICES這個命令是選擇GPU的型號,如果你只有一塊GPU,就只能選擇0。
這個報錯的網上解答很多都是要求重新裝驅動,裝cuda。如果是頭一次使用cuda,報錯,可以重新裝,不過對于我來說沒必要,其他代碼能運行,說明版本啥的沒問題,能不折騰就不折騰。
能想到的bug就這么多,后續想到了或者遇到了會繼續補充。有建議和問題請在評論區留言,我想起了就會去看看。
等待后續更新 2020年1月8日
總結
以上是生活随笔為你收集整理的fasterrcnn tensorflow代码详解_pytorch目标检测代码的一些bug调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python偶数分解成两个素数之和_偶数
- 下一篇: python的装饰器、迭代器、yield