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/details/104024682