ValueError:无法创建其内容大于2GB的张量原型

时间:2018-07-09 11:28:31

标签: python tensorflow machine-learning nlp word2vec

我正在使用此代码来训练新闻文章数据集。

https://github.com/borislavmavrin/stance-detection/blob/master/model_matchingLSTM_wdev.py

加载GoogleNews word2vec文件时,出现错误。

  

ValueError:无法创建内容大于2GB的张量原型。

stacktrace从https://github.com/borislavmavrin/stance-detection/blob/master/model_matchingLSTM_wdev.py#L614行开始,

然后转到https://github.com/borislavmavrin/stance-detection/blob/master/model_matchingLSTM_wdev.py#L154

这里的任何帮助将不胜感激。我现在不想更改此代码的结构,我现在只专注于结果,因为这只是我想对该数据集执行的原型。如果结果足够好,我可能会编写自己的模型或改进现有模型。

1 个答案:

答案 0 :(得分:0)

将计算放在CPU上无济于事。这里的问题是tf.constant的实现涉及使用协议缓冲区对值进行序列化。后者的大小限制最大为2GB。

一种解决方法是用占位符替换常量,然后将值输入sess.run()

您可以尝试的另一种选择是将常量分解为几个常量(拆分numpy数组并为每个部分创建一个tf.constant),然后使用tf.concat将其串联。可以在本地完成此操作,而无需稍后填充占位符。