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

久未见 提交于 2020-01-23 02:29:31

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!