关于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必须要在相同的输入图片大小的基础下才具有可比性!
以上,希望能让大家少踩坑!有问题可以评论留言!
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |