为什么小型和大型神经网络占用相同数量的RAM?

时间:2017-07-29 11:00:17

标签: c++ neural-network caffe conv-neural-network

一开始,我在 caffe 框架中训练了一个卷积神经网络,其模型重80Mb。虽然,我注意到在将其加载到我的项目后,它需要几乎1 Gb的RAM。在网上我发现任何CNN占用了大量内存。这就是为什么我认为较小的CNN会解决我的问题。我训练了另外一个层数较少的人。最后,该模型仅加权60Mb,但仍然占用了之前的1Gb RAM内存。

在回答我的问题之前,请注意:

1)当我测量记忆的数量时,我已经对项目的每一行进行了评论,剩下的唯一内容就是加载的模型。

2)我已经检查了使用终端命令'htop'获取的内存量(是的,它们是相同的)

P.S。我是DNN的新手,还有其他解决方案吗?谢谢你的帮助!

更新

我创建了一个带有一个隐藏层的网(仅仅是为了实验)并将其加载到我的项目中。考虑到该模型的重量仅为160Kb且仍需要1Gb的RAM内存,我当然不明白如何将caffe模型加载到项目中。我正在使用caffe库并使用类'classifier'加载模型。再次,谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

显然,您的进程在RAM中占用的大小不依赖于网络的大小。必须有别的东西。如果你感兴趣的是什么 - 有内存分析工具,可以报告内存消失的地方。