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

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


参数量的计算:

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

 


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

 

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

 


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

 

 


模型占用显存的计算

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

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

 


计算方式为:

 

 

 

 

 

 

 

 

  • 48
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值