当我使用预训练的词向量通过 LSTM 进行分类时,我想知道如何处理 tensorflow 中大于 2gb 的嵌入查找表。
为此,我尝试像下面的代码一样制作嵌入查找表,data = tf.nn.embedding_lookup(vector_array, input_data)
得到这个值错误。ValueError: Cannot create a tensor proto whose content is larger than 2GB
代码中的变量vector_array是numpy数组,它包含大约1400万个唯一标记和每个词的100维词向量。
谢谢你的帮助
最佳答案
对我来说,接受的答案似乎不起作用。虽然没有错误,但结果很糟糕(与通过直接初始化的较小嵌入相比),我怀疑嵌入只是 tf.Variable() 初始化的常量 0。
仅使用占位符而不使用额外变量
self.Wembed = tf.placeholder(
tf.float32, self.embeddings.shape,
name='Wembed')
然后在图表的每个 session.run() 上提供嵌入似乎可以工作。
关于tensorflow - 如何处理 tensorflow 中的大(> 2GB)嵌入查找表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46712934/