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.75k stars 2.88k forks source link

相同数据集,相同硬件条件下,yolov5x与ppyoloe+ l训练时间比较 #8138

Open wang002 opened 1 year ago

wang002 commented 1 year ago

问题确认 Search before asking

请提出你的问题 Please ask your question

我在一个自定义的数据集上面训练,大概有2300张,19种类别。硬件是3090*3,以下为训练时间比较数据 模型:yolov5 x ,图像大小:640,训练轮数:300,总训练时间 150分钟。 模型:ppyoloe+ l ,图像大小:640,训练轮数:80,总训练时间 120分钟。 从数据上面来看,训练轮数减少了,但是训练总时间减少并不多。这两个模型大小和推理速度差不多。同样也用pytorch版的ppyoloe+ l训练试过,训练时间也差不多,并未减少。您觉得是哪部分模块会造成单轮训练时间比较长

nemonameless commented 1 year ago

总bs一致再去比速度吧

wang002 commented 1 year ago

总bs一致再去比速度吧

bs都是一样的,您这儿有没有比较两者之间的单轮训练时间?

nemonameless commented 1 year ago

torch yolov5数据加载有cache机制,能加快很多速度,你可以把cache机制注释在对比看看。 paddle里其实也有,但不太方便用,https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/ppdet/data/transform/operators.py#L168

wang002 commented 1 year ago

torch yolov5数据加载有cache机制,能加快很多速度,你可以把cache机制注释在对比看看。 paddle里其实也有,但不太方便用,https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/ppdet/data/transform/operators.py#L168

非常感谢,用您的方法给添加了cache,确实提高了训练速度,从原来的120分钟,优化到100分钟。他是有效的。但是还是有50%的差距,还什么方法可以在加加速吗?

wang002 commented 1 year ago

从这个cache来看,paddle是把数据缓存到硬盘里面的,那么进一步的提升方法是可以把数据都加载到内存里面吗,应该改动哪个呢?

nemonameless commented 1 year ago

ppyoloe+是多尺度训练,速度也会慢。你可以试试trainreader里多尺度列表里只保留640尺度

Hudaiguo commented 1 year ago

为什么使用 ppyoloe+ l训练,将epoch从80修改为300,训练完之后模型反而没有检测到目标,或者说检测到的目标置信度极低?谢谢