前言
并不是参数量越少,网络运行速度越快。网络运行快慢与网络参数量不一定成正比。参考博客
一、网络运算时的组成
shufflenet提出,网络的运行时间由不同的部分组成。由下图可以得出虽然卷积占用了大部分时间,但其他操作,包括数据I/O和Element-wise(AddTensor、ReLU等)也占用了大量时间。因此,单单优化网络在执行卷积时所花费的时间有一定的效果。
二、关于目标检测网络的常用指标
1.AP(%)
代表了目标检测算法的检测精度。
2.Parameters
参数量,指模型含有多少参数.
Parameters 参数量。参数量指的是模型所包含的参数的数量,比如我们模型中使用到的卷积、全连接里面的权值矩阵对应的每一个数字,都是参数量的组成.
参数量的单位是M,需要注意的是,模型的参数量并不等于存储空间大小,存储空间的单位是MB(或者KB)而不是M。
3.GFLOPs
FLOPs 是浮点运算次数,可以用来衡量算法/模型复杂度GFLOPs。
FLOPS是处理器性能的衡量指标,是“每秒所执行的浮点运算次数”的缩写。
FLOPs是算法复杂度的衡量指标,是“浮点运算次数”的缩写,s代表的是复数
FLOPs是用来衡量算法复杂度的指标,但算法复杂度往往不等同于算法的运算速度。Efficientdet就是非常典型的例子,FLOPs很小,但速度慢,占用显存大
4.Latency
网络前向传播的时间
Latency指一般是网络预测一张图片所用的时间,应该是不包括后处理(without post processing)的。也就是单单包含了网络前传部分的时间。
5.FPS
每秒传输帧数,FPS=1/Latency
总结
1.Parameters低 ≈ FLOPs低:FLOPs基本和Parameters成正关系,不过FLOPs还和输入进来的图片大小有关,输入图片越大,FLOPs 越大
2.FLOPs低 ≠ Latency低: FLOPs低 ≠ FPS高,最典型的例子就是EfficientNet,EfficientNet使用了大量的低FLOPs、高数据读写量的操作,即深度可分离卷积操作。这些具有高数据读写量的操作,受到了GPU带宽的限制,算法浪费了大量时间在读写数据上,GPU算力也自然没有得到良好的应用
3.Parameters低 ≠ Latency低:Parameters低 ≠ FPS高,同FLOPs,最典型的例子就是EfficientNet。
并不是参数量越少,网络运行速度越快。网络运行快慢与网络参数量不一定成正比。参考博客