目标检测params,flops计算

目标检测params,flops计算

参数数量用params表示,关系到模型大小,单位通常为M,通常参数用float32表示,所以模型大小是参数数量的4倍。

理论计算量用FLOPs或者M-Adds表示,这里用FLOPs写起来简单,关系到算法速度,大模型的单位通常为G,小模型通道为M。注意两点:

理论计算量通常只考虑乘加操作(Multi-Adds)的数量,而且只考虑CONVFC等参数层的计算量,忽略BatchNorm和PReLU等等。一般情况,CONV和FC层也会忽略仅纯加操作的计算量,如bias偏置加和shotcut残差加等,目前技术有BN的CNN可以不加bias。
理论计算量通常和实际ARM实测速度会有不一致,主要是理论计算量太过理论化,没有考虑不同硬件IO速度和计算力差异,最重要的是inference framework部署框架优化水*和程度差异,不同框架的优化的关注点不一样,同一框架对不同层的优化程度也不一样。Inference Framework以的ncnn为代表。

CONV标准卷积层
params(kh * kw * cin + 1) * cout
FLOPSkh * kw * cin * cout * H * W

FC全连接层
params(cin + 1) * cout
FLOPScin * cout * H * W

猜你喜欢

转载自blog.csdn.net/qq_35140742/article/details/120741001