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

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

————————————————————————————————————————–

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

关于参数量和计算量:

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

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

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

shape表示输入图片的长宽

测试如下:

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

结果如下:

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

一目了然!

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

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

————————————————————————————————————————

关于FPS的计算

找到tools/analysis_tools/benchmark.py文件

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

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

运行后,结果如下:

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

一目了然! 

———————————————————————————————————————–

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

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

 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年3月10日
下一篇 2023年3月10日

相关推荐