了解神经网络的内存使用情况
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 个字节的原因),因此它们没有考虑差异以上是关于了解神经网络的内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章