分四大部份:
- 空间占用——单个模型的参数文件要占用多大空间
- 内存占用——运行在手机或平板上时需要占用多大的 RAM
- 运行速度——尤其考虑实时的视频和大图像处理情形
- 耗电情况
Ref:
原文: http://machinethink.net/blog/how-fast-is-my-model/
翻译:https://blog.csdn.net/leayc/article/details/81001801
影响内存占用的主要因素:ResNet-50为例 network architecture图
256*256的彩色图像:256*256*3*1 byte= 192KB |
模型自身conv.等使用到的Params参数
ResNet-50有26 million参数,占内存:26M * 32 bit = 99MB |
模型里各layer计算产生的中间变量(memory), 也就是输入图像在计算时每一层产生的输入和输出feature map
ResNet-50有16 million响应 (没推衍怎么算的),占内存:16M*32bit = 64MB |
做mini-batch训练时batch size的影响
ResNet-50,mini-batch=16,各层相应占内存:64MB*16= 1GB |
BP算法: 如果用BP算法(back propagation)时中间变量部份还要*2 ~~!!!
所以一张256*256彩色影像做FP的inference时=192KB+99MB+64MB就还好,训练时加上batch因素就瞬间变内存怪兽爆掉
Ref:
https://blog.csdn.net/shenxiaolu1984/article/details/71522141/
https://blog.csdn.net/wz22881916/article/details/81054036
YOLO V3 中间层变量分析,这要推导出中间变量占用内存有点难..........
https://blog.csdn.net/dz4543/article/details/90049377