了解神经网络的内存使用情况

Posted

技术标签:

【中文标题】了解神经网络的内存使用情况【英文标题】:Understanding memory usage of neural network 【发布时间】:2016-07-25 14:52:47 【问题描述】:

我正在尝试了解here 所示的 convnet 内存使用计算是如何执行的(向下滚动到 VGGNet 详细信息部分)。

查看 VGGNet 网络使用多少内存的计算输出显示:

TOTAL memory: 24M * 4 bytes ~= 93MB

但是,将列表中每个层的所有 memory: 值相加仅得到大约 15M * 4 字节,我不确定这个总数中其余的内存来自哪里。

【问题讨论】:

我会说这是不一致的例子。 我在 19 层实现 E 上使用相同的数学运算得到约 90MB,而不是 16 层 D:arxiv.org/pdf/1409.1556.pdf 【参考方案1】:

您忘记为 FC 添加内存:

FC:[1x1x4096] 内存:4096 权重:7*7*512*4096 = 102,760,448

FC:[1x1x4096] 内存:4096 权重:4096*4096 = 16,777,216

FC:[1x1x1000] 内存:1000 权重:4096*1000 = 4,096,000

我认为这是您计算中丢失的 9M。

【讨论】:

你认为这些数字中缺少的9M在哪里,你加起来是4096+4096+1000吗?这些数字描述了每层神经元的数量,计算假设每个神经元占用 4 个字节的内存(这就是最终数字乘以 4 个字节的原因),因此它们没有考虑差异

以上是关于了解神经网络的内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章

了解此 Haskell 程序的内存使用情况

在 PHP (PDO) 中了解 MySQL 的内存使用情况

如何使用 WMI 了解进程的 CPU 和内存使用情况?

我应该使用哪些 Instruments 工具来了解我的 Monotouch 应用程序的内存使用情况?

Haskell,分析导入库的内存使用情况

Android背景图片内存使用情况