PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.65k stars 2.87k forks source link

ppyolo训练正常,评估过程出现错误 #2343

Open shuxsu opened 3 years ago

shuxsu commented 3 years ago

`2021-03-14 10:41:27,787-INFO: Test iter 0 2021-03-14 10:41:31,010-INFO: Test finish iter 44 2021-03-14 10:41:31,011-INFO: Total number of images: 87, inference time: 24.439726468611074 fps. loading annotations into memory... Done (t=0.05s) creating index... index created! Traceback (most recent call last): File "train.py", line 399, in main() File "train.py", line 320, in main cfg['EvalReader']['dataset']) File "/home/shujisheng/download/PaddleDetection_r_2.0_rc/ppdet/utils/eval_utils.py", line 241, in eval_results save_only=save_only) File "/home/shujisheng/download/PaddleDetection_r_2.0_rc/ppdet/utils/coco_eval.py", line 87, in bbox_eval results, clsid2catid, is_bbox_normalized=is_bbox_normalized) File "/home/shujisheng/download/PaddleDetection_r_2.0_rc/ppdet/utils/coco_eval.py", line 315, in bbox2out catid = (clsid2catid[int(clsid)]) KeyError: 2 terminate called without an active exception W0314 10:41:32.189633 21160 init.cc:226] Warning: PaddlePaddle catches a failure signal, it may not work properly W0314 10:41:32.189677 21160 init.cc:228] You could check whether you killed PaddlePaddle thread/process accidentally or report the case to PaddlePaddle W0314 10:41:32.189685 21160 init.cc:231] The detail failure signal is:

W0314 10:41:32.189697 21160 init.cc:234] Aborted at 1615689692 (unix time) try "date -d @1615689692" if you are using GNU date W0314 10:41:32.193388 21160 init.cc:234] PC: @ 0x0 (unknown) W0314 10:41:32.193491 21160 init.cc:234] SIGABRT (@0x3eb00004a9c) received by PID 19100 (TID 0x7fe6e97fe700) from PID 19100; stack trace: W0314 10:41:32.196112 21160 init.cc:234] @ 0x7fea36d24390 (unknown) W0314 10:41:32.199249 21160 init.cc:234] @ 0x7fea36066438 gsignal W0314 10:41:32.201252 21160 init.cc:234] @ 0x7fea3606803a abort W0314 10:41:32.202811 21160 init.cc:234] @ 0x7fe9e20eb892 gnu_cxx::verbose_terminate_handler() W0314 10:41:32.204593 21160 init.cc:234] @ 0x7fe9e20e9f69 cxxabiv1::terminate() W0314 10:41:32.206133 21160 init.cc:234] @ 0x7fe9e20e9fab std::terminate() W0314 10:41:32.207245 21160 init.cc:234] @ 0x7fe9e20e9c7c gxx_personality_v0 W0314 10:41:32.208137 21160 init.cc:234] @ 0x7fe9e23dcbc8 _Unwind_ForcedUnwind_Phase2 W0314 10:41:32.209748 21160 init.cc:234] @ 0x7fe9e23dceae _Unwind_ForcedUnwind W0314 10:41:32.212064 21160 init.cc:234] @ 0x7fea36d23070 GI_pthread_unwind W0314 10:41:32.213795 21160 init.cc:234] @ 0x7fea36d1b845 pthread_exit W0314 10:41:32.216584 21160 init.cc:234] @ 0x55b17954be96 PyThread_exit_thread W0314 10:41:32.218968 21160 init.cc:234] @ 0x55b17946aed8 PyEval_RestoreThread W0314 10:41:32.219485 21160 init.cc:234] @ 0x7fe9d494f7c2 (unknown) W0314 10:41:32.222203 21160 init.cc:234] @ 0x55b179506427 _PyMethodDef_RawFastCallKeywords W0314 10:41:32.222749 21160 init.cc:234] @ 0x55b179507ad8 call_function W0314 10:41:32.224927 21160 init.cc:234] @ 0x55b17953274a _PyEval_EvalFrameDefault W0314 10:41:32.227216 21160 init.cc:234] @ 0x55b179475af2 _PyEval_EvalCodeWithName W0314 10:41:32.229890 21160 init.cc:234] @ 0x55b17947706d _PyFunction_FastCallDict W0314 10:41:32.231832 21160 init.cc:234] @ 0x55b179495c4e _PyObject_Call_Prepend W0314 10:41:32.232100 21160 init.cc:234] @ 0x55b179575e99 slot_tp_call W0314 10:41:32.234983 21160 init.cc:234] @ 0x55b179506a5b _PyObject_FastCallKeywords W0314 10:41:32.235390 21160 init.cc:234] @ 0x55b179507b59 call_function W0314 10:41:32.237493 21160 init.cc:234] @ 0x55b17952e4ac _PyEval_EvalFrameDefault W0314 10:41:32.240200 21160 init.cc:234] @ 0x55b179476ead _PyFunction_FastCallDict W0314 10:41:32.242513 21160 init.cc:234] @ 0x55b179495c4e _PyObject_Call_Prepend W0314 10:41:32.242767 21160 init.cc:234] @ 0x55b179575e99 slot_tp_call W0314 10:41:32.245306 21160 init.cc:234] @ 0x55b179506a5b _PyObject_FastCallKeywords W0314 10:41:32.245849 21160 init.cc:234] @ 0x55b179507b59 call_function W0314 10:41:32.248188 21160 init.cc:234] @ 0x55b17953274a _PyEval_EvalFrameDefault W0314 10:41:32.250527 21160 init.cc:234] @ 0x55b179475af2 _PyEval_EvalCodeWithName W0314 10:41:32.253216 21160 init.cc:234] @ 0x55b17947706d _PyFunction_FastCallDict Aborted `

heavengate commented 3 years ago

是训练自己的数据集么,训练自己的数据集需要把配置文件里的所有num_classes相关字段修改成你的数据集里的类别数

shuxsu commented 3 years ago

是训练自己的数据集么,训练自己的数据集需要把配置文件里的所有num_classes相关字段修改成你的数据集里的类别数

这个是在已经修改后的情况下进行训练和评估的

heavengate commented 3 years ago

是训练自己的数据集么,训练自己的数据集需要把配置文件里的所有num_classes相关字段修改成你的数据集里的类别数

这个是在已经修改后的情况下进行训练和评估的

你设置的num_classes是多少,数据集里的类别数是多少

shuxsu commented 3 years ago

正常我看ppyolo都是batchsize 24 然后你们用的是32G显存的卡 我用的是p40 24G显存 我设置成4 8 有时候都爆显存。。。。这是什么原因呢

shuxsu commented 3 years ago

是训练自己的数据集么,训练自己的数据集需要把配置文件里的所有num_classes相关字段修改成你的数据集里的类别数

这个是在已经修改后的情况下进行训练和评估的

你设置的num_classes是多少,数据集里的类别数是多少

我的数据集类别是2 num_classes 也是2

heavengate commented 3 years ago

是训练自己的数据集么,训练自己的数据集需要把配置文件里的所有num_classes相关字段修改成你的数据集里的类别数

这个是在已经修改后的情况下进行训练和评估的

你设置的num_classes是多少,数据集里的类别数是多少

我的数据集类别是2 num_classes 也是2

看报错是预测的类别需要是2,也就是第三类,可以确认一下ppyolo.ymlppyolo_reader.yml里的num_classes是否全部修改了

heavengate commented 3 years ago

正常我看ppyolo都是batchsize 24 然后你们用的是32G显存的卡 我用的是p40 24G显存 我设置成4 8 有时候都爆显存。。。。这是什么原因呢

修改batch_size需要修改TrainReader.batch_size的配置

shuxsu commented 3 years ago

正常我看ppyolo都是batchsize 24 然后你们用的是32G显存的卡 我用的是p40 24G显存 我设置成4 8 有时候都爆显存。。。。这是什么原因呢

修改batch_size需要修改TrainReader.batch_size的配置

ppyolo.yml的类别修改了 reader里面没有num classes啊 还有那个batch size 多大和显存怎么调整啊 才能最大batch size还不爆显存