神经网络模型计算量分析

    神经网络模型有多层神经网络层组成的,按照神经元的基本组成,每个神经网络层的基本结构可以被表示为公式(1)所示。根据公式我们可以看出,网络中每一层的计算是上一层的输出结果和其对应权重之积与偏置叠加的结果。

Y_{i}=X_{i}\times W_{i}+B_{i} (1)

    式子中:Y_{i}表示当前层输出;X_{i}表示当前层输入,W_{i}表示当前层的权重,B_{i}表示当前层的偏置。

    那么根据这些,如何推算出一套神经网络系统在指定计算平台中的性能指标呢?计算性能指标,我们首先需要知道有哪些性能需要我们计算。对于计算平台而言最重要的是计算力带宽计算力指的是一个计算平台在极限情况下每秒所最大限度能完成的内存交换量,单位是FLOPS;而带宽指的是一个计算平台在极限情况下每秒所最大限度能完成的内存交换量,单位是B/s。对于神经网络模型而言,最重要的是计算量访问量。计算量指的是输入单个样本,模型完成一次前向传播过程所发生的的浮点运算数,单位是FLOPS;而访问量指的是输入单个样本,模型完成一次前向传播过程所发生的内存交换总量,单位是字节B。在理想情况下,模型的访问量就是模型各层权重参数所占用的内存与每层所输出的特征图的内存占用之和。由于数据类型通常为Float32,为32位数据,访问量的单位是B,为8位数据,因此需要将模型的访问量乘4。

    这里我们使用卷积层为例,讨论常用网络层计算量。卷积层的计算量公式为:

        N_{C}=M^{_{2}} \times K^{_{2}} \times C_{in} \times C_{out} (2)   

     式中:M表示每个卷积核输出特征图的边长;K表示每个卷积核的边长;C_{in} 表示每个卷积核的通道数,即输入通道数,也即上一层的输出通道数;C_{out} 表示本卷积层具有的卷积核的个数,也即输出通道数。

    全连接层的计算量公式为:

N_F=H\times W (3)

    式中:H表示当前层权重矩阵的行数;W表示当前层权重矩阵的列数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值