matlab yolo v3 코드 에러

2 views (last 30 days)
junhwa kim
junhwa kim on 18 Aug 2020
Answered: Srivardhan Gadila on 22 Aug 2020
안녕하세요.
matlab에서 배포한 yolo v3 코드에서 제 데이터세트(multi-class)로 학습시에 아래와 같은 오류가 계속 발생합니다.
(yolo-v3 예제인 vehicleDataset(single class)에서는 정상적으로 작동합니다.)
다음 사용 중 오류가 발생함: bboxOverlapRatio
'bboxA'의 값이 유효하지 않습니다. 입력값은(는) 유한함(finite)이어야 합니다.
오류 발생: bboxOverlapRatio>validateAndParseInputs (line 195)
parser.parse(bboxA,bboxB,varargin{:});
오류 발생: bboxOverlapRatio>iParseInputs (line 94)
[bboxA, bboxB, ratioType] = validateAndParseInputs(bboxA, bboxB, varargin{:});
오류 발생: bboxOverlapRatio (line 55)
[bboxA, bboxB, ratioType, isUsingCodeGeneration] = iParseInputs(bboxA,bboxB,varargin{:});
오류 발생: generateTargets>getMaxIOUPredictedWithGroundTruth (line 138)
overlap = bboxOverlapRatio(predb,truthBatch);
오류 발생: generateTargets (line 45)
iou = getMaxIOUPredictedWithGroundTruth(bx,by,bw,bh,groundTruth);
오류 발생: modelGradients (line 16)
[boxTarget, objectnessTarget, classTarget, objectMaskTarget, boxErrorScale] = generateTargets(gatheredPredictions, YTrain, inputImageSize, anchors, mask, penaltyThreshold);
오류 발생: deep.internal.dlfeval (line 18)
[varargout{1:nout}] = fun(x{:});
오류 발생: dlfeval (line 41)
[varargout{1:nout}] = deep.internal.dlfeval(fun,varargin{:});
오류 발생: multi_class_yolov3_smd_v2 (line 207)
[gradients,loss,state] = dlfeval(@modelGradients, net, XTrain, YTrain, anchorBoxes, anchorBoxMasks, penaltyThreshold, networkOutputs);
이와 유사한 에러를 겪은 다른 사용자의 글에서도 답변이 제대로 달려있지 않아 디버그에 어려움을 겪고 있습니다.
제 데이터 세트로 yolo-v2 나 ssd는 제대로 동작하는데 yolo-v3에서만 에러가 나서 matlab에서 제공하는 코드에서 에러가 발생하는 것으로 생각됩니다.
답변부탁드립니다.
감사합니다.
matlab 버전 : 2020a

Accepted Answer

Srivardhan Gadila
Srivardhan Gadila on 22 Aug 2020
The error message "The value of 'bboxA' is invalid. Expected input to be finite." would occur when input to the function bboxOverlapRatio is NaN/Inf, this implies that the network is producing NaN/Inf values during training. This is a known issue and it might be fixed in the future releases.
You can try the following things which might help you avoid getting NaNs/Infs during training:
1. Reduce the Learning Rate.
2. Increase the warm-up period.
3. Increase the minibatch-size.

More Answers (0)

Categories

Find more on Recognition, Object Detection, and Semantic Segmentation in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!