模型大小、推理速度相关

模型参数量(Params)和模型每秒浮点运算速度(Flops)

对卷积层而言

Params量计算公式: ( K h ∗ K w ∗ C i n ) ∗ C o u t (K_h*K_w*C_in )*C_out (KhKwCin)Cout
Flops计算公式: ( K h ∗ K w ∗ C i n ∗ C o u t ) ∗ ( H o u t ∗ W o u t ) (K_h*K_w*C_in*C_out )*(H_out*W_out) (KhKwCinCout)(HoutWout)
其中 K h K_h Kh K w K_w Kw代表了kernel的input_size, C i n C_in Cin是input feature map的channel数, C o u t C_out Cout是output feature map的channel数, H o u t 和 W o u t H_out和W_out HoutWout分别代表了output feature map的size。

对于全连接层而言

Params量计算公式: C i n ∗ C o u t C_in*C_out CinCout
Flops计算公式: C i n ∗ C o u t C_in*C_out CinCout

FLOPS: floating point operations per second.每秒的浮点运算次数。
MADDs: 即MACCs(multiply-accumulate operations):先乘起来再加起来的运算次数。

例如: y = w [ 0 ] ∗ x [ 0 ] + w [ 1 ] ∗ x [ 1 ] + w [ 2 ] ∗ x [ 2 ] + . . . + w [ n − 1 ] ∗ x [ n − 1 ] y = w[0]*x[0] + w[1]*x[1] + w[2]*x[2] + ...+ w[n-1]*x[n-1] y=w[0]x[0]+w[1]x[1]+w[2]x[2]+...+w[n1]x[n1]
  w 和 x 都是向量,y 是标量。上式是全连接层或卷积层的典型运算。一次乘-加运算即一次乘法+一次加法运算,所以上式的 MACCs 是n 。
  不过可以看到,加法运算的次数并非 n 而是 n-1 。但考虑 MACCs 时可以类比算法复杂度估算的 big-O ,即结果可以是近似的。
  而换到 FLOPS 的情况,点积做了 2n-1 FLOPS,即 n-1 次加法和 n 次乘法。可以看到,MACCs 大约是 FLOPS 的一半。

一个MFLOPS(megaFLOPS)等于每秒一百万(=10^6)次的浮点运算
一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算
一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算

深度学习网络模型的运算复杂度、空间占用和内存访问情况计算
衡量模型的快慢不仅仅是参数量、计算量的多少,还有内存访问的次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值