【发布时间】:2017-09-03 10:19:18
【问题描述】:
我正在运行一个具有非常大的词嵌入(> 2M 词)的模型。当我使用 tf.embedding_lookup 时,它需要一个很大的矩阵。当我运行时,我随后摆脱了 GPU 内存错误。如果我减小嵌入的大小,一切正常。
有没有办法处理更大的嵌入?
【问题讨论】:
-
能不能把embedding部分放在CPU上,其他部分放在GPU上?在此处查看 tf.device() 用于设备放置的用法,tensorflow.org/tutorials/using_gpu
-
我不知道你的问题的上下文,但词嵌入通常意味着稀疏,你可以选择稀疏矩阵运算吗?如果不是,张耀的想法是对的,如果它不适合你的 GPU,那就买一个更大内存的 GPU,或者只是使用你有足够内存的 CPU。请注意,张量流调试器非常适合查看模型中各种张量的大小。
-
@YaoZhang,我试过了。它似乎并没有减轻 GPU 内存利用率。幕后发生了一些我不知道的事情。
标签: tensorflow nlp deep-learning embedding embedding-lookup