PP-Detection Logs —— 运算效率

这篇博客对比了Paddle2.2和Pytorch1.7在运行Yolov3模型时的运算效率、GPU资源使用情况及mAP性能。结果显示,Paddle在单次epoch运算时间上显著长于Pytorch,GPU显存占用更多但利用率低,且mAP表现不佳。作者推测可能的原因涉及框架底层,并计划进行更深入的探究和验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 记录——运算效率(对比Pytorch 1.7)

1.1. 单次epoch的运算时间(以Yolo v3为例)

  • Image-size:2432*2040
  • Batch-size:4 images
  • Epoch-size:897 images
  • Epoch-train_size:717 images
  • Epoch-test_size:180 images
  • Worker:1

这里说明一下,Paddle在开大于1个worker时会出现训练中断,有类似“dataloder worker exited unexpectedly”的报错。而Pytorch不会这问题。所以为了对比的有效性,这里num_workers都设置为1。

FrameTrain time (s)Test time (s)
Pytorch 1.780±1012±2
Paddle 2.2605±1020±2

截取了其中一次epoch的log截图:
Pytorch-train-test
Paddle-train-test
很明显,同等超参情况下,Paddle的耗时远大于Pytorch。猜想有一部分原因来自于LoDTensor,但应该不是根本原因。具体根源来自于哪?目前不得而知,后续深入使用后,希望可以找到。

1.2. GPU显存使用量与GPU占用率(以Yolo v3为例)

处理同样规模的数据量时,Paddle所使用的显存更多,但利用率很低。这就不难理解为什么会出现Paddle在训练时间上远大于Pytorch的现象。大概率是框架底层的问题。目前我还没有尝试更多的模型来对比,所以不能下一个准确的结论。待验证… …

FrameGPU Memory-UsageGPU-Util
Pytorch 1.75687m0%~45%
Paddle 2.27723m0%~9%

Pytorch-gpu
Paddle-gpu

1.3. 同等epoch限定下的mAP对比(以Yolo v3为例)

配置同样的超参,且warmup都设为10。同样运行33次epoch后,对比mAP的峰值。Paddle不如Pytorch表现得好。不过实验仍在继续,将运行500次epoch后再终止,届时再观察二者的变化。就目前来看,Paddle前期训练效果不尽人意。

FrameBest mAPLast(33) mAP
Pytorch 1.736.65%28.58%
Paddle 2.216.67%15.17%

Pytorch
Paddle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值