【深度学习实战(48)】如何计算模型的参数量、占用内存、CPU、GPU占用的算力

一、 参数量

每一次卷积的参数量和特征图的大小无关,仅和卷积核的大小,偏置及BN有关。
1.每个卷积层的参数量,+1表示偏置:
Co x (Kw x Kh x Cin + 1)
2.全连接层的参数量
(D1 + 1) x D2
3.BN层的参数量
因为BN层需要学习两个参数 γ和 β ,所以参数量是2xCo

二、内存占用

参数量所占内存(32位的float需要占用4个字节)
Memory(MB) = params x 4 /1024 /1024
比如:VGG参数量约为138million,则内存大小为138*3.8 = 524MB

三、模型复杂度,计算量 FLOPs

FLOPs(floating point operations):指浮点运算次数,可以用来衡量算法/模型的复杂度,表示计算量

FLOPS表示每秒浮点运算次数,用于评估计算设备的处理能力和性能,单位有MOPS,GOPS,TOPS

算力单位量级变换
MOPS (Million Operation Per Second) 一百万次(10^6) 兆;百万
GOPS (Giga Operations Per Second) 十亿次 (10^9) 千兆;十亿(billion,B)
TOPS (Tera Operations Per Second) 一万亿次 (10^12) 兆兆

1 MOPS = 10^6 FLOPS
一个MFLOPS(megaFLOPS)等于每秒一百万(=10^6)次的浮点运算,

1 GOPS = 10^9 FLOPS
一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,十亿(部分地方可能会用B,billion,十亿)

==1 TOPS = 10^12 FLOPS ==
一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,(1太拉)
注意:这个地方有时候加不加FL比较含糊,很多厂家和个人有时候没有专门写明,一般先关注量级即可

举例:

单模型算力需求算力为50 Gflops,其中单模型主干网络算力30 Gflops,车道线检测12 Gflops,目标检测8 Gflops,进行4相机同时推理,并达到10 fps,需求算法为:
50410 = 2000 Gflops=2 Tops

DIMS

CPU性能评估采用综合测试程序,较流行的有Whetstone和Dhrystone两种。Dhrystone主要用于测整数计算能力,计算单位就是DMIPS。Whetstone主要用于测浮点计算能力,计算单位就是MFLOPS。一个表示整数运算能力,一个表示浮点数运算能力,二者不能完全等同。

DMIPS:Dhrystone Million Instructions executed Per Second,主要用于测整数计算能力;
MFLOPS:Million Floating-point Operations Per Second,主要用于测浮点计算能力;
D是Dhrystone的缩写,表示的是基于Dhrystone这样一种测试方法下的MIPS。Dhrystone是于1984年由Reinhold P. Weicker设计的一套综合的基准程序,该程序用来测试CPU(整数)计算性能。Dhrystone所代表的处理器分数比MIPS(Million Instructions executed Per Second,每秒钟执行的指令数)更有意义。

一般芯片都有DMIPS/MHz信息,比如ARM Cortex-A53架构为2.3DMIPS/MHz,那么可以计算出:

双核A53架构,主频为1.6GHz的CPU,DMIPS为:2 * 1600MHz * 2.3 DMIPS/MHz = 7360 DMIPS;
四核A53架构,主频为1.6GHz的CPU,DMIPS为:4 * 1600MHz * 2.3 DMIPS/MHz = 14720 DMIPS;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BILLY BILLY

你的奖励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值