神经网络中参数量parameters和FLOPs计算

技术交流QQ群:1027579432,欢迎你的加入!

一.神经网络中参数量parameters和FLOPs计算

  • CNN中的parameters分为两种:W和b,对于某一个卷积层,它的parameters的个数为:
    \left(K_{h} * K_{w} * C_{i n}\right) * C_{o u t}+C_{o u t}
    其中,K_{h}是卷积核的高度,K_{w}是卷积核的宽度,C_{in}是输入的通道数,C_{out}是输出的通道数
  • 对于某个全连接层,如果输入的数据有N_{in}个节点,输出的数据有N_{out}个节点,它的参数个数为:
    N_{i n} * N_{o u t}+N_{o u t}
  • FLOPS:floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度,是一个衡量硬件性能的指标
  • FLOPs:是floating point operations的缩写。意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度
  • 对于某个卷积层,它的FLOPs数量是:
    \left[\left(K_{h} * K_{w} * C_{i n}\right) * C_{o u t}+C_{o u t}\right] *(H * W)=n u m_{-} \operatorname{params} *(H * W)
    其中,num_{params}表示该层参数的数量,H是输出图像的高,W是输出图片的宽
  • 例题1:假设你的输入是一个300×300的彩色(RGB)图像,而你没有使用卷积神经网络。 如果第一个隐藏层有100个神经元,每个神经元与输入层进行全连接,那么这个隐藏层有多少个参数(包括偏置参数)
  • A1:因为输入的节点数量是300*300*3,输出的节点数量是100。然后加上偏置项b,因为隐藏层有100个节点,每个节点都有一个偏置,所以b=100。利用上面计算全连接网络的公式,故3*300*300*100+100
  • 例题2:假设你的输入是300×300彩色(RGB)图像,并且你使用卷积层和100个过滤器,每个过滤器都是5×5的大小,请问这个隐藏层有多少个参数(包括偏置参数)
  • A2:首先,参数和输入的图片大小是没有关系的,无论你给的图像像素有多大,参数值都是不变的,在这个题中,参数值只与过滤器有关。单个过滤器的大小是5*5,由于输入的是RGB图像,所以输入通道数目是3。因此一个过滤器的组成是5*5*3,每一过滤器只有一个偏置项b,因此一个过滤器所拥有的参数是5*5*3+1=76,一共用了100个过滤器,所以隐藏层含有76*100=7600个参数。其实,也就是上面的公式计算CNN的参数量。

二、参考博客

参考博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。