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.38k stars 2.84k forks source link

在voc、roadsign数据集合上训练出来的pp-yoloe的精度很低 #5769

Closed Amanda-Barbara closed 2 years ago

Amanda-Barbara commented 2 years ago

[04/20 15:22:59] ppdet.metrics.metrics INFO: Accumulating evaluatation results... [04/20 15:22:59] ppdet.metrics.metrics INFO: mAP(0.50, 11point) = 0.00% [04/20 15:22:59] ppdet.engine INFO: Total sample number: 4952, averge FPS: 42.79540406530177 [04/20 15:22:59] ppdet.engine INFO: Best test bbox ap is 0.014. [04/20 15:22:59] ppdet.engine INFO: Epoch: [2] [ 0/4137] learning_rate: 0.016000 loss: 63.368572 loss_cls: 61.510956 loss_iou: 0.368948 loss_dfl: 1.600212 loss_l1: 1.086268 eta: 2 days, 3:11:19 batch_cost: 0.1546 data_cost: 0.0001 ips: 25.8763 images/s [04/20 15:23:17] ppdet.engine INFO: Epoch: [2] [ 100/4137] learning_rate: 0.016193 loss: 62.064835 loss_cls: 60.284752 loss_iou: 0.347132 loss_dfl: 1.575234 loss_l1: 1.030029 eta: 2 days, 3:09:56 batch_cost: 0.1449 data_cost: 0.0001 ips: 27.6125 images/s [04/20 15:23:34] ppdet.engine INFO: Epoch: [2] [ 200/4137] learning_rate: 0.016387 loss: 61.342621 loss_cls: 59.442886 loss_iou: 0.345017 loss_dfl: 1.630384 loss_l1: 1.121350 eta: 2 days, 3:08:43 batch_cost: 0.1454 data_cost: 0.0001 ips: 27.5052 images/s [04/20 15:23:51] ppdet.engine INFO: Epoch: [2] [ 300/4137] learning_rate: 0.016580 loss: 65.535904 loss_cls: 64.028183 loss_iou: 0.338505 loss_dfl: 1.529226 loss_l1: 1.047977 eta: 2 days, 3:07:01 batch_cost: 0.1433 data_cost: 0.0001 ips: 27.9153 images/s 这是voc的精度,roadsign数据集合上的精度也是如此,是不是pp-yoloe算法的训练逻辑出问题了?求解答。

wangxinxin08 commented 2 years ago

这个应该是相关配置没有配置好,可以把修改的配置文件发一下,一般是学习率没有设置好

Amanda-Barbara commented 2 years ago

TrainReader: batch_size: 4

LearningRate: base_lr: 0.04

epoch: 300

LearningRate: base_lr: 0.025 schedulers:

OptimizerBuilder: optimizer: momentum: 0.9 type: Momentum regularizer: factor: 0.0005 type: L2

architecture: YOLOv3 norm_type: sync_bn use_ema: true ema_decay: 0.9998

YOLOv3: backbone: CSPResNet neck: CustomCSPPAN yolo_head: PPYOLOEHead post_process: ~

CSPResNet: layers: [3, 6, 6, 3] channels: [64, 128, 256, 512, 1024] return_idx: [1, 2, 3] use_large_stem: True

CustomCSPPAN: out_channels: [768, 384, 192] stage_num: 1 block_num: 3 act: 'swish' spp: true

PPYOLOEHead: fpn_strides: [32, 16, 8] grid_cell_scale: 5.0 grid_cell_offset: 0.5 static_assigner_epoch: 100 use_varifocal_loss: True loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} static_assigner: name: ATSSAssigner topk: 9 assigner: name: TaskAlignedAssigner topk: 13 alpha: 1.0 beta: 6.0 nms: name: MultiClassNMS nms_top_k: 1000 keep_top_k: 100 score_threshold: 0.01 nms_threshold: 0.6

worker_num: 4 eval_height: &eval_height 640 eval_width: &eval_width 640 eval_size: &eval_size [eval_height, eval_width]

TrainReader: sample_transforms:

EvalReader: sample_transforms:

TestReader: inputs_def: image_shape: [3, eval_height, eval_width] sample_transforms:

wangxinxin08 commented 2 years ago

你是几卡训练的?单卡训练的话,把学习率除以8

Amanda-Barbara commented 2 years ago

好的,我试一试,多谢。

Amanda-Barbara commented 2 years ago

@wangxinxin08 [04/21 09:35:32] ppdet.metrics.metrics INFO: Accumulating evaluatation results... [04/21 09:35:32] ppdet.metrics.metrics INFO: mAP(0.50, 11point) = 44.33% [04/21 09:35:32] ppdet.engine INFO: Total sample number: 4952, averge FPS: 26.31392836900017 [04/21 09:35:32] ppdet.engine INFO: Best test bbox ap is 0.443. [04/21 09:35:33] ppdet.utils.checkpoint INFO: Save checkpoint: output/ppyoloe_crn_s_300e_voc 这是第二次epoch的训练精度,已经正常,多谢指点,建议放到FAQ里面。