tensorflow - 如何处理 tensorflow 中的大(> 2GB)嵌入查找表?

标签 tensorflow deep-learning

当我使用预训练的词向量通过 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/

相关文章:

tensorflow - 如何确定我的深度学习模型需要什么类型的层?

Tensorflow 输入管道

machine-learning - 使用 PyTorch 向 LSTM 提供多个输入以进行时间序列预测

opencv - 仅通过图像而不是通过标签从数据库中查找相似图像

python - 无法理解修改后的 VGG16 前向方法的行为 (Pytorch)

python - 基于 Keras 中自定义指标的提前停止和学习率计划

java - bazel 构建错误 - tensorflow

python - 如何从 .t​​frecords 文件中选取 TensorFlow 中的特定记录?

c++ - Caffe Euclidean 图像损失计算

Keras Dropout 层模型预测