训练模型Out of memory问题

我与影子孤独终老i 提交于 2020-01-17 22:31:16
1.背景

最近尝试训练模型时,出现内存不足的问题,此外还遇到了显存不足的问题。
尝试了网上的一些方法,发现没用或用不了:

  1. 混合精度运算
    即半浮点数精度训练,首先试了apex这个库,结果发现没用,别的博客说pascal构架的显卡用不了,结果笔记本1050ti好像就是此构架。手动设置所有float()为half()类型,也还是不行。
  2. 降低批次
    已经为1了,还怎么降,索性去掉BN层,然后还是提示显存不足。

2.解决: 加条内存条

训练时就注意到,其实显存并没用占满,提示还有多少显存 free,但是却没法申请,而内存已经占了快80%多,或许是内存限制了。
显存->内存->磁盘
windows上有如上共享关系,显存不够可以共享内存,内存不够可以共享磁盘(虚拟内存)。比如,任务管理器GPU上的如下信息,显存有4GB,共享了8G的内存给它,不够了可以先放内存里,一共拥有的可用内存为12G。
显存
此外,在加内存条时发现,C盘一下快被占满了,因为虚拟内存设置的自动调整,即“系统管理的大小”,结果自动调整到了16G,所以手动改一下就好。比如数据分析时装数据,如内存不够,就可以增大虚拟内存。
在这里插入图片描述

3.结论

熟悉下流程就行了,训练大的模型不是笔记本能耍的,耍不起。

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