[PaddlePaddle/Paddle][目标检测][结果Error]第二次开始运行不同的图片,永远是第一张图片的结果

2024-03-22 870 views
4
bug描述 Describe the Bug

最新的Commit发现只要是非CPU运行 Yolo类型的网络。 目前能确认CUDA和Custom Device一定这样。切CPU模式就正常。 Yolo和SSD都会这样。

分享ppyolo模型 链接: https://pan.baidu.com/s/1rcYJYXRt2IfUIRu5Nt7_9w?pwd=vguu 提取码: vguu

Screenshot from 2023-02-24 10-14-49 Screenshot from 2023-02-24 10-15-00

图中第二只猫仍然是第一张图的检测结果。

第一次运行结果正确。 但是从第二次运行开始,拿到的结果Tensor永远是第一张图的。 这在我两周前提交PR不会这样的情况。

怀疑是nms3算子 切到CPU上,再切回device出现问题

Code is on develop https://github.com/PaddlePaddle/Paddle/commit/605242a890daf11f1605070cc6c3c781cac61536 System Ubuntu 20.04 GCC 9.4.0 CUDA 11.7 CUDNN 8.7.0

回答

3

这个能确定两周内才有

2

贴一下错误的代码 你用的repo也顺便贴一下

2

测试代码 链接: https://pan.baidu.com/s/1gvB4FTHJaJ4KT_DNWeGJmQ 密码: 0bk1

里面对两幅不同的图进行推理,却得到了一样的结果,我怀疑所GraphIR有问题,multiclass_nms3必然是CPU运行的,与GPU之间的transform存在BUG

2

@SunNy820828449

1

我已经给提commit的同学反馈这个问题

7

请问之前正常的版本号还记得吗?@engineer1109

3

@csy0225 我看了custom_device 已经正常了,我明天再看CUDA的。