训练模型Out of memory问题
1.背景 最近尝试训练模型时,出现内存不足的问题,此外还遇到了显存不足的问题。 尝试了网上的一些方法,发现没用或用不了: 混合精度运算 即半浮点数精度训练,首先试了apex这个库,结果发现没用,别的博客说pascal构架的显卡用不了,结果笔记本1050ti好像就是此构架。手动设置所有float()为half()类型,也还是不行。 降低批次 已经为1了,还怎么降,索性去掉BN层,然后还是提示显存不足。 2.解决: 加条内存条 训练时就注意到,其实显存并没用占满,提示还有多少显存 free,但是却没法申请,而内存已经占了快80%多,或许是内存限制了。 显存 -> 内存 -> 磁盘 windows上有如上共享关系, 显存不够可以共享内存,内存不够可以共享磁盘(虚拟内存) 。比如,任务管理器GPU上的如下信息,显存有4GB,共享了8G的内存给它,不够了可以先放内存里,一共拥有的可用内存为12G。 此外,在加内存条时发现,C盘一下快被占满了,因为虚拟内存设置的自动调整,即“系统管理的大小”,结果自动调整到了16G,所以手动改一下就好。比如数据分析时装数据,如内存不够,就可以增大虚拟内存。 3.结论 熟悉下流程就行了,训练大的模型不是笔记本能耍的,耍不起。 来源: CSDN 作者: 夏目里奇 链接: https://blog.csdn.net/qq_31787603/article