GPU模型训练OOM

作者: 京漂的小程序媛儿 | 来源:发表于2019-01-17 19:28 被阅读0次

    Resource exhausted error:

    OOM when allocating tensor with shape[***,*****,***] and type float

    Resource exhausted

    显卡内存不够:

    解决方法精髓:making your model smaller or reducing your batch size

    1. batch_size太大,内存不够,最快的尝试解决方案。

    2.如果batch_size=1了,还是不行,那就是tensor太大了啊,而我的GPU显存只有7G。

    例如我embedding之后得到的tensor shape是: (None, 60000, 60)。

    此时:首先,确保代码逻辑正确性。这种情况下,就减少一些影响网络大小的参数(例如embedding dim等,提示那个tensor太大就减小哪个),先确保代码逻辑的正确性。不要太自信了,当你把所有参数都调的很小还跑不动,你就要怀疑你的网络了。

    tf.float64 -> tf.float32 -> tf.float16 for all your variables. 

    如果参数都小的时候跑通了,逐步增大各个参数。终极方案就是加GPU了。

    在这个过程中还发现一个问题,当tensor非常大时,第一个epoch时特别慢,要30分钟左右,后面的epoch会好点,两三分钟。听说增加SGD就可以了。其实还是网络大,而内存小呗。

    相关文章

      网友评论

        本文标题:GPU模型训练OOM

        本文链接:https://www.haomeiwen.com/subject/pitmdqtx.html