关于bn层
mean,std 第i个元素就是第i个通道上全部batch张输出特征图所有元素的平均值和方差,所shape就是特征图shape
可学习参数 weight和bias分别对应 γ,β.有bn时cov可以不用bia
在训练过程中,mean和std是统计得到的,然后在迭代过程中动态累加,m*si-1+(1-m)*si,m为历史保留比,对应pytorch的momenta参数,test过程中使用训练过程的统计结果
关于计算量(FLOPs)和参数量(Params)
flops :乘加次数,计算量对应时间复杂度
例如:
f l o p s c o v = h ∗ w ∗ k 2 ∗ c i n ∗ c o u t f l o p s d o w n s a m p l e = 0 f l o p s f c = w e i g h t i n ∗ w e i g h t o u t flops_{cov} = h*w*k^2*c_{in}*c_{out}\newline flops_{downsample} = 0\newline flops_{fc} = weight_{in}*weight_{out} flopscov=h∗w∗k2∗cin∗coutflopsdownsample=0flopsfc=weightin∗weightout
params :参数量对应于我们之前的空间复杂度,参数量影响显存
p a r a m s c o v = k 2 ∗ c i n ∗ c o u t p a r a m s d o w n s a m p l e = 0 p a r a m s f c = w e i g h t i n ∗ w e i g h t o u t params_{cov} = k^2*c_{in}*c_{out}\newline params_{downsample} = 0\newline params_{fc} = weight_{in}*weight_{out} paramscov=k2∗cin∗coutparamsdownsample=0paramsfc=weightin∗weightout
显存=模型自身的参数(params)+模型计算产生的中间变量(memory)