pjreddie / darknet

Convolutional Neural Networks
http://pjreddie.com/darknet/
Other
25.75k stars 21.33k forks source link

Training YOLO3 on 16 classes VOC --> error #637

Open austin880301 opened 6 years ago

austin880301 commented 6 years ago

Dear sir:

I modify the voc_lable.py for 16 classes and change yolov3-voc-cfg for classes=16, filters=63. and then train the voc. At last run detect demo with my new weights and the result as following:

FPS:20.1 Objects:

Error in `./darknet': free(): invalid pointer: 0x00007f2ff80023d0 ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f30fb7817e5] /lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f30fb78a37a] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f30fb78e53c] ./darknet[0x4672e8] ./darknet[0x485597] /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f30fbadb6ba] /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f30fb81141d] ======= Memory map: ======== ......

best regards

ahsan856jalal commented 6 years ago

Did you change filters and classes on all three instances in the cfg file

austin880301 commented 6 years ago

Thanks a lot , I do not change filters and classes on all three instances in the cfg file. I only change one yolo layer, I should change three yolo layer

zhangjinsong3 commented 6 years ago

@austin880301 ,Excuse me. How to set the 'filters' according to 'classes'

Ibtastic commented 4 years ago

@zhangjinsong3 Each YOLO layer has 255 outputs: 85 outputs per anchor [4 box coordinates + 1 object confidence + 80 class confidences], times 3 anchors. If you use fewer classes, reduce filters to filters=[4 + 1 + n] * 3, where n is your class count. This modification should be made to the layer preceding each of the 3 YOLO layers. Also modify classes=80 to classes=n in each YOLO layer, where n is your class count (for single class training, n=1)

As mentioned in this https://github.com/ultralytics/yolov3/issues/102