关于yolo的params,FLOPs,FPS如何计算

img


声明一下我这个是yolov3的test.py结果
请问:①图中61497430 parameters怎么转换成论文中那种几十的参数量呢?②计算量FLOPs怎么求呢?我看图中是GFLOPs不一样。
③FPS怎么求呢?我搜到的关于yolov5求fps下面的三个数字后面的名字不一样,而这个yolov3是inference/nms/total,那我该怎么求yolov3的fps呢?
求解答,谢谢

参数量:除以1000000就可以得到以M为单位的参数量了

可以借鉴下

from thop import profile
import torch
from resnet_18 import Resnet_18, resnet18

model = Resnet_18()
input = torch.randn(1, 3, 256, 256)
flops, params = profile(model, inputs = (input))
print(flops)
print(params)


借鉴文心一言:
① 对于Yolov3模型,参数数量为61497430,这是模型的总参数数量。然而,在论文中通常会提到模型的压缩后参数数量,这是通过使用压缩算法来减少模型的大小和参数数量。因此,如果你需要将参数数量转换为几十的数量级,可能需要使用压缩后的参数数量。

② GFLOPs和FLOPs是不同的计算量单位。GFLOPs(GigaFLOPS)是每秒十亿次浮点运算的速度单位,而FLOPs(Floating Point Operations per Second)是每秒浮点运算的总数。在计算GFLOPs时,需要将模型的总运算量除以10亿。例如,如果模型的运算量为100FLOPs,则其计算量为100/10亿 = 1e-8GFLOPs。

③ 对于Yolov3模型,FPNS (Inference/NMS/Total) 下的三个数字分别表示推理、非极大抑制和总的处理速度。因此,要计算Yolov3的FPS(每秒帧数),需要将这三个数字相加,并将结果除以10亿(即每秒十亿分之一的数量级),以得到模型的FPS。例如,如果FPNS下的数字为1000、200和300,则模型的FPS为1000 + 200 + 300 = 1500fps。