深度学习中的数值计算

1.定义

参数数量(params):关系到模型大小,单位通常为M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍
理论计算量(FLOPs):是 floating point operations 的缩写(注意 s 小写),可以用来衡量算法/模型的复杂度,这关系到算法速度,大模型的单位通常为 G,小模型单位通常为 M
通常只考虑乘加操作(Multi-Adds)的数量,而且只考虑 CONV 和 FC 等参数层的计算量,忽略 BN 和PReLU 等等。一般情况,CONV 和 FC 层也会 忽略仅纯加操作 的计算量,如 bias 偏置加和 shotcut 残差加等,目前技术有 BN 的 CNN 可以不加 bias

Conv2d 标准卷积层

input:
output:
filters:
params
FLOPs
若算上加法:

其中(这需要对卷积过程有较深的理解),标准的卷积将输入的N个channel分成1组,复用M次
表示在一个卷积核计算时在叠加bias,
乘以表示在输入的channel方向进行乘积,即一组乘积
表示一组卷积之后对N个结果进行N-1次加法来叠加结果
表示最终汇聚成特征图上的一个点
乘以表示在最终的输出特征图,所有点的的个数

FC 全连接层

input:
output:
params
FLOPs

Depthwise conv2d

input:
output:
filters:
params
FLOPs

输出Feature map的大小


: size of input feature maps
: size of output feature maps
: padding size
: kernel size
: stride size

感受野计算


如第一层的RF为3
第二层的RF为5

扩展阅读:
https://www.zhihu.com/question/65305385/answer/649290586

你可能感兴趣的:(深度学习中的数值计算)