Table of Contents
了解大型神经网络的内存足迹对于优化部署和培训至关重要,有助于确定硬件要求和效率,本文解释了如何计算神经网络模型所使用的内存.
内存使用组件
总内存足迹包括几个组成部分:模型参数,梯度,优化状态,以及计算过程中的临时缓冲. 每个组成部分都有助于整体内存消耗.
计算模型参数内存
主要因素是模型参数的大小。要估计这一点,将参数数乘以每个参数的大小,一般是32位浮点数的4字节。
例如,一个拥有1亿个参数的模型,仅仅为了存储参数,就需要大约400 MB的内存.
额外的内存考虑
在训练期间,梯度和优化状态也会消耗内存. 梯度通常与参数大小相同,内存要求翻倍. 优化状态,如动力或适应性学习速率变量,可以增加更多的间接费用.
激活和中间计算的临时缓冲器也促进了内存的总使用,特别是大批量大小或复杂架构.
估计总内存使用量
估计总内存足迹, 将内存对参数, 梯度, 优化状态, 和临时缓冲。 根据特定的模型架构和培训设置来调整计算 。
- 模型参数
- 渐变
- 优化状态
- 激活缓冲器
- 中间计算