Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 执行嵌入查找时TensorFlow内存不足(ResourceExhaustedError)_Python_Tensorflow - Fatal编程技术网

Python 执行嵌入查找时TensorFlow内存不足(ResourceExhaustedError)

Python 执行嵌入查找时TensorFlow内存不足(ResourceExhaustedError),python,tensorflow,Python,Tensorflow,我使用一个预处理的向量来创建这样的嵌入 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_

我使用一个预处理的向量来创建这样的嵌入

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)
我得到一个错误后,它短暂地运行了一两个训练批和代码崩溃完全

ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[5000,14621,100]
堆栈跟踪清楚地表明这是由
embedding\u layer=tensorflow.nn.embedding\u lookup(W,data\u占位符)
行引起的。 你知道这是什么原因吗?100是嵌入大小,但其他数字(500014621)非常奇怪,比我执行的要大,似乎导致TensorFlow完全占用了所有GPU内存!
嵌入查找似乎是一件很常见的事情,我正在合并的.vec文件非常小。

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

您的批量大小是多少?你的句子长度是多少?@EvanWeissburg batch_size=32。句子可以是相当大的文本体,最多有2k-3k个单词左右。我尝试将批量大小更改为3,但再次出现完全相同的错误。