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

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

  • CNN中的parameters分为两种:W和b,对于某一个卷积层,它的parameters的个数为:

    其中,是卷积核的高度,是卷积核的宽度,是输入的通道数,是输出的通道数
  • 对于某个全连接层,如果输入的数据有个节点,输出的数据有个节点,它的参数个数为:
  • FLOPS:floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度,是一个衡量硬件性能的指标
  • FLOPs:是floating point operations的缩写。意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度
  • 对于某个卷积层,它的FLOPs数量是:

    其中,表示该层参数的数量,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的参数量。

二、参考博客

参考博客