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

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐