CNN卷积神经网络训练时占多少显存(GPU)的计算

以前总看见别人说某某神经网络参数量有多少,大概占用多大的显存等等描述,但心里却并不知道为什么是这么多,今天看到这篇文章,大体上有了一定的理解。


参数量的计算:

「VGG Network」,牛津大学VGG实验室设计的架构,将AlexNet的8层提高到了19层,真正让深度这个词得以充分体现。
从VGG开始,人们不再使用太大的卷积核,取而代之的是若干个小卷积核的组合。
比如,3个步长为1的3X3卷积核,可以拥有1个7X7的卷积核一样的感受野。但是,它可以使整个网络变得更深,并且更具有非线性。
同时,还能够进一步减少训练的参数量。

 


关于参数的计算,有些朋友有一些疑惑,那么下图可以帮助你理解它是如何计算的。

 

我们要训练的参数其实就是卷积核的参数量,这和输入和输出的特征图数量以及卷积核本身的大小有关,希望下图的列子能够帮到你。备注:仔细理解下面这张图

 


如果你理解了上图的列子,欢迎你再尝试自己计算一下VGG16的总参数量
值得一提的是,在训练的时候,因为有forward 和 backward,所以参数量要乘以2,另外一个就是网络所需要的内存,这个也是非常重要的一个指标,因为当前的GPU内存空间非常有限。可以从下图得知,在网络最开始的几层,占用的GPU内存最多,而绝大多数的参数,都来自于全连接层,这也是一个后来全局池化被运用而全连接层被减少使用的原因。

 

 


模型占用显存的计算

妹纸:那个,可以问你,模型的Batch Size怎么决定嘛?或者说,怎样计算模型所需要的显存啊。。
花花:这个问题,就有那么一丢丢复杂了。。你听我慢慢说吗??
妹纸:额,这个,那还是算了吧。。
花花:。。。

还是补一个模型怎么计算吧。
正常来讲,显存的占用主要是Model本身和每一层的output。

 


计算方式为:

 

 

 

 

 

 

 

 

  • 47
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
CNN,即卷积神经网络(Convolutional Neural Networks),是一种深度学习模型,广泛应用于图像识别、处理和分类任务。它是深度学习领域的一个重要分支,与传统的神经网络相比,CNN通过引入卷积层,可以更好地处理局部和上下文信息,并且具有很好的空间适应性。 CNN的主要特点包括: 1. 卷积层:CNN的核心在于卷积层,该层利用滑动窗口在输入数据上滑动,同对窗口附近的像素进行加权平均得到该位置的卷积结果。这种操作能够有效地捕捉输入数据中的局部和上下文信息。 2. 池化(Pooling)技术:卷积神经网络通常结合池化技术以减少特征地图的大小,并保持某些区域的权重比其他区域更高,这在神经网络中引入了空间下的“稀疏性”。 3. 深度:CNN通常具有多层的卷积层和池化层,这使得CNN具有很强的特征学习和分类能力。随着网络深度的增加,CNN能够学习到越来越复杂的特征表示。 4. 适应性:CNN对输入数据的形状具有适应性,这意味着它可以轻松处理不同形状和大小的输入数据。 卷积神经网络计算机视觉、自然语言处理、机器人视觉等领域有广泛应用,尤其是在图像分类、目标检测、图像生成等领域表现出了强大的性能。虽然CNN已经取得了许多成功,但它仍在不断发展和改进,如使用自注意力机制、跨通道信息融合等新技术,以进一步提高性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值