近几天跑完实验后,发现效果还是不错,于是开始进行模型的参数量、计算量和速度指标的计算对比,话不多说,直接上干货。
--------------------------------------------------------------------------------------------------------------------------
首先记住一句话:模型的参数量越小,这个模型的计算量不一定小,速度也不一定快。
关于参数量和计算量:
找到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必须要在相同的输入图片大小的基础下才具有可比性!
以上,希望能让大家少踩坑!有问题可以评论留言!文章来源:https://www.toymoban.com/news/detail-791617.html
文章来源地址https://www.toymoban.com/news/detail-791617.html
到了这里,关于关于mmdetection、mmrotate如何计算参数量、计算量和速度FPS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!