首页 > 系统服务 > 详细

卷积层计算 feature maps 和中间结果所占用内存量, mac计算方法

时间:2020-03-23 21:01:01      阅读:183      评论:0      收藏:0      [点我收藏+]

卷积层的输入是 224x224x3 ,把所有这些值读出来需要访问 150,528 次内存。

如果卷积核是 KxKxCout ,还要乘上这个系数(因为每次卷积都要访问一遍)。

拿 stride=2kernel 数为32的情况来说,输出的 feature map 尺寸为 112x112x32,共计 401,408 次内存访问。

所以,每层的内存访问总数如下:

简单理解为卷积的总计算量需要存储,输出的结果需要存储,权重需要存储。

input = Hin x Win x Cin x K x K x Cout

output = Hout x Wout x Cout

weights = K x K x Cin x Cout + Cout ,

 

例:

input = 224 x 224 x 3 x 3 x 3 x 32 = 43,352,064
output = 112 x 112 x 32 = 401,408
weights = 3 x 3 x 3 x 32 + 32 = 896
total = 43,754,368

 

加深时,Hin Win 会越来越小,但通道数会变得很大 ,weights 部分也会变得很大:

input = 28 x 28 x 256 x 3 x 3 x 512 = 924,844,032
output = 28 x 28 x 512 = 401,408
weights = 3 x 3 x 256 x 512 + 512 = 1,180,160
total = 926,425,600

 

卷积层计算 feature maps 和中间结果所占用内存量, mac计算方法

原文:https://www.cnblogs.com/ywheunji/p/12554998.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!