pytorch显存一直变大的解决方案
大体思路其实思路很简单,就是在代码的运行阶段输出显存占用量,观察在哪一块存在显存剧烈增加或者显存异常变化的情况。但是在这个过程中要分级确认问题点,也即如果存在三个文件main.py、train.py、model.py。随后,再从train.py中的问题点,进入到model.py中,再次确认。具体例子main.py假设1与2之间显存增加极为剧烈,说明问题出在train_epoch中,进一步进入到train.py中。train.py如果在1,2之间,5,6之间同时出现显存增加异常的情况。假设第9行起作用后,代码出现显存爆炸,说明问题出在第九行,显存爆炸的问题锁定。这种情况是我第二次遇到显存爆炸查出来的,非常让人匪夷所思。这个P是一个矩阵,在使用p.sub_的方式更新P的时候,导致了显存爆炸。将这行代码修改为p=p-,显存爆炸的问题解决。
用户评论