关于mmdetection、mmrotate如何计算参数量、计算量和速度FPS

近几天跑完实验后,发现效果还是不错,于是开始进行模型的参数量、计算量和速度指标的计算对比,话不多说,直接上干货。

--------------------------------------------------------------------------------------------------------------------------

首先记住一句话:模型的参数量越小,这个模型的计算量不一定小,速度也不一定快。

关于参数量和计算量:

找到mmdetection或mmrotate的 tools/analysis_tools/get_flops.py文件,可以看到:

config表示你的模型配置文件、

shape表示输入图片的长宽

测试如下:

python tools/analysis_tools/get_flops.py work_dirs/s2anet_r50_fpn_3x_hrsc_le135/s2anet_r50_fpn_3x_hrsc_le135.py

结果如下:

一目了然!

而有人会问Flops与GFLOPs的区别,简单来说, GFLOPs是与你的硬件配置有关,可以理解为日常生活中常用的单位:kg、m等单位,这里不必关心。而Flops就是你的模型计算量了,这里数字越大代表计算量越大。

参数量我这里就不细说了。

------------------------------------------------------------------------------------------------------------------------

关于FPS的计算

找到tools/analysis_tools/benchmark.py文件

config意义同上

checkpoint表示权重文件,演示如下: 

python -m torch.distributed.launch --nproc_per_node=1 --master_port=29500  tools/analysis_tools/benchmark.py runs/rotated_fcos_r50_fpn_1x_hrsc_le90_reg.py runs/latest.pth --launcher pytorch

前面这一串 -m torch.distributed.launch --nproc_per_node=1 --master_port=29500 代表分布式的参数,不必深究。

记得最后要带上--launcher pytorch

运行后,结果如下:

一目了然! 

-----------------------------------------------------------------------------------------------------------------------

最后,我还需要i强调一点的是:不同模型的FPS必须要在相同的输入图片大小的基础下才具有可比性!

以上,希望能让大家少踩坑!有问题可以评论留言!

 

  • 22
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值