神经网络训练时为什么有时会出现内存不够用的情况

首先,在网络更深或者训练时批量更大时,更容易出现out of memory的情况。

因此,在模型参数初始化完成后,我们交替地进⾏正向传播和反向传播,并根据反向传播计算的
梯度迭代模型参数。既然我们在反向传播中使⽤了正向传播中计算得到的中间变量来避免重复计
算,那么这个重⽤也导致正向传播结束后不能⽴即释放中间变量内存。这也是训练要⽐预测占⽤
更多内存的⼀个重要原因。另外需要指出的是,这些中间变量的个数跟⽹络层数线性相关,每个
变量的⼤小跟批量⼤小和输⼊个数也是线性相关的,它们是导致较深的神经⽹络使⽤较⼤批量训
练时更容易超内存的主要原因。

你可能感兴趣的:(深度学习)