Yolo v2 訓練 NAN解決過程

2021-07-29 10:50:52 字數 467 閱讀 8646

主要參考

今天在用yolo訓練自己的資料集的時候,一開始訓練過程中的loss還很正常地在下降。結果到了幾個個batch的地方突然就出現loss = nan的情況。其實到現在自己也沒有發現到底是什麼導致了nan,但是參考上面這篇文章,至少暫時解決了這個問題。

1)首先檢查了**是不是對的。一般出現nan,第一反應是:會不會**出現了分母為0,或者log的真值為負數這樣的情況。然後在自己修改過的原始碼裡面檢查了一遍,發現並沒有出現這個問題。

3)最後擔心是不是梯度在某乙個batch的時候突然**了。因此修改原始碼detector.c,訓練的時候每乙個batch都列印一下當前的loss。發現出現nan之前都會有乙個batch的loss=inf。因為yolo的loss函式的定義就是均方差,因此,loss就等於梯度的平方。所以判斷應該是某乙個batch使得梯度突然增大。參考caffe的方法。設定一定的閾值,使得當梯度超過這個閾值的時候,直接設定為該閾值大小。暫時解決了nan的問題

YOLO v2 檢測原理

v2版本的優化目標 改善召回率,提公升定位精度,保證分類準確度。yolov2相比yolov1的改進 v2在每乙個卷積之後增加了bn層,提高了網路訓練的速度,加快了收斂,消除了對其他正則化的依賴,且正則化效果更好,使調參更簡單,即使去掉dropout層也不會產生過擬合。v1先使用224 224的解析度...

YOLOV2演算法筆記

yolov2演算法詳解部落格 一 better 1.對每一層都做了歸一化 2.先利用分類資料對網路進行訓練,然後遷移學習。3.不再和yolov1那樣直接 bounding box,yolov2中開始利用ancher box,4.dimension clusters,利用k means聚類的方式,發現...

yolov2 訓練自己的樣本 GPU加速

1.採集影象,做成voc格式的資料集 3.修改makelist檔案裡面的 gpu 1 cudnn 1 opencv 1 openmp 1 debug 1 4.把voc格式的資料集放在scrip裡面,然後跑voc label.py 5.cfg檔案裡的voc.name classes 1如果只有一類就為...