1.参数
- 参数量[Parameters Numbers]——参数量只是指的模型中参数的数量大小,即有多少个参数,它和输入的图片大小无关。常用单位为M,M指百万,1M指有100,0000个参数
- 模型实际保存后占用的空间[Model Size]——简称为模型大小,常用单位为MB,1GB=1024MB
- FLOPs[注意s小写,是floating point operations的缩写(s表复数)]——指浮点运算数,可以理解为计算量,它用来衡量算法/模型的复杂度
2.关系
2.1参数量与模型大小:
参数一般为32位的浮点数,占4B,设参数量为
x
x
xM,参数的占用空间为
x
×
1
0
6
×
4
x\times 10^{6} \times 4
x×106×4B,我们知道1MB=
2
20
2^{20}
220B,模型大小为
x
×
1
0
6
×
4
2
20
\frac{x\times 10^{6} \times 4}{2^{20}}
220x×106×4MB,可以看到模型大小与参数量成线性关系
Python代码实现
def real_size(p):
s = p * 1000000 * 4 / (1024 * 1024)
return s
def real_para(s):
p = s * (1024 * 1024) / 4 / 1000000
return p
2.2模型大小与FLOPs的关系
2.2.补坑
3.计算工具
TorchStat
Pytorch-OpCounter
FLOPs-Counter.Pytorch