首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行embedding_lookup时TensorFlow内存不足(ResourceExhaustedError)

执行embedding_lookup时TensorFlow内存不足(ResourceExhaustedError)
EN

Stack Overflow用户
提问于 2018-02-01 06:32:27
回答 1查看 237关注 0票数 2

我使用预留向量来创建嵌入,如下所示

代码语言:javascript
复制
import numpy
import gensim
import tensorflow
ft_model=gensim.models.KeyedVectors.load_word2vec_format("ft_model.vec")
vocabulary=ft_model.vocab
embeddings=numpy.array([ft_model.word_vec(x) for x in vocabulary.keys()])

vocabulary_size=len(vocabulary)
embedding_size=embeddings.shape[1]

W=tensorflow.Variable(
    tensorflow.constant(0.0, shape=[vocabulary_size, embedding_size]),
    trainable=False,
    name="W"
)
embedding_placeholder=tensorflow.placeholder(
    tensorflow.float32,[vocabulary_size,embedding_size],
    name="fasttext_vector"
)
embedding_init=W.assign(embedding_placeholder)
data_placeholder=tensorflow.placeholder(tensorflow.int32,shape=[None, max_length])
embedding_layer=tensorflow.nn.embedding_lookup(W, data_placeholder)

在它短暂地运行了一两个训练批之后,我得到了一个错误,代码完全崩溃了!

代码语言:javascript
复制
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[5000,14621,100]

堆栈跟踪cleary声明这是由embedding_layer=tensorflow.nn.embedding_lookup(W, data_placeholder)行引起的。知道这是什么原因吗? 100是嵌入大小,但其他数字(5,000,14621)是相当奇怪的,比我所列举的还要大,似乎导致TensorFlow完全消耗了所有的图形处理器内存!嵌入查找似乎是一件很常见的事情,而我正在合并的.vec文件非常小。

EN

回答 1

Stack Overflow用户

发布于 2020-10-03 22:05:04

可能是您的计算机内存(RAM)不足。在启动模型之前,先看一下任务管理器。我有16 GB的内存,容量是79%,所以内存用完了。使用jupyter笔记本查看准备好数据后剩余的Ram数量可能会有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48552542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档