卷积神经网络时间和空间复杂度分析

在深度学习的发展过程中,有意无意中,很多创新点都与改善模型计算复杂度密切相关。

因而,本文对CNN的时间和空间复杂度做以分析。

首先,明确下FLOPS和FLOPs的区别:

  • FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。
  • FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。

 

卷积层:

(2\times C_{i} \times K^{2}-1)\times H\times W\times C_{o}

Ci=input channel, k=kernel size, HW=output feature map size, Co=output channel.

2是因为一个MAC算2个operations。

不考虑bias时有-1,有bias时没有-1。

上面针对一个input feature map,没考虑batch size。

理解上面这个公式分两步,括号内是第一步,计算出output feature map的一个pixel,然后再乘以HWCo拓展到整个output feature map。括号内的部分又可以分为两步, (2 \cdot C_{i}\cdot K^{2}-1)=(C_{i}\cdot K^{2})+(C_{i}\cdot K^{2}-1) ,第一项是乘法运算数,第二项是加法运算数,因为n个数相加,要加n-1次,所以不考虑bias,会有一个-1,如果考虑bias,刚好中和掉,括号内变为 2 \cdot C_{i}\cdot K^{2}

 

全联接层:

(2\times I-1)\times O

I=input neuron numbers, O=output neuron numbers.

2是因为一个MAC算2个operations。

不考虑bias时有-1,有bias时没有-1。

分析同理,括号内是一个输出神经元的计算量,拓展到O了输出神经元。

 

 

https://zhuanlan.zhihu.com/p/31575074

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一维卷积神经网络(1D Convolutional Neural Network, CNN)是卷积神经网络(Convolutional Neural Network, CNN)的一种简化版本,主要用于处理一维数据,如时间序列数据,例如音频信号或文本。CNN通常用于二维数据(图像)的分析,但在处理线性结构的数据时,一维CNN同样有效。 卷积神经网络的核心特别之处在于以下几个方面: 1. **局部连接和权重共享**:CNN中的卷积层利用每个过滤器(filter)对输入数据的局部区域进行卷积操作,这使得模型能够学习到数据中的局部特征。同时,同一个过滤器在不同位置使用相同的权重,减少了参数数量,提高了模型的效率。 2. **池化层**:CNN包含池化层,如最大池化或平均池化,用于下采样,提取数据的主要特征,同时降低计复杂度和过拟合风险。 3. **深度学习**:CNN能够处理大量的层级结构,每一层捕捉数据的不同抽象特征,从低级的边缘、纹理,到高级的颜色和形状。 4. **平移不变性**:由于卷积操作,CNN对于输入中的特征变化具有一定的鲁棒性,即使特征在空间上移动,模型也能识别。 5. **训练效率**:对于图像数据,CNN通过并行计的优势,可以在GPU上快速训练,尤其是在大型数据集上。 对于一维CNN来说,这些特性被调整为适应一维输入,例如在一维音乐数据或文本序列中检测模式和规律。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值