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



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

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

1(当我测量占用的内存量时,我已经评论了我项目的每一行,唯一剩下的就是加载的模型。

2(我已经检查了使用终端命令"htop"占用的内存量(是的,它们是相等的(

附言我是 DNN 的新手,还有其他解决方案吗?感谢您的帮助!

更新

我已经创建了一个带有隐藏层的网络(只是为了实验(并将其加载到我的项目中。考虑到该模型仅重 160Kb 并且仍然占用 1Gb RAM 内存,我当然不明白如何将 caffe 模型加载到项目中。我正在使用 caffe 库并使用类"分类器"加载模型。再次感谢您的帮助!

显然,您的进程在 RAM 中采用的大小不取决于网络的大小。一定还有别的东西。如果你对到底是什么感兴趣 - 有内存分析工具,可以报告内存的去向。

最新更新